У меня, кажется, проблема, у меня есть класс (LoginService), который принимает в конструкторе IUser. Это делается для проведения интеграционных тестов, а не модульных тестов, поэтому я не хочу их устанавливать, у меня уже есть несколько тестов модулей, и они отлично работают с помощью Moq с креплением.AutoFixture: невозможно создать экземпляр, возможно, нет открытого конструктора
настроить мой светильник: -
var fixture = new Fixture();
И тогда я хочу, чтобы иметь возможность заморозить версию IUser, я попытался следующие, но я не мог заставить его работать, он жалуется, что он не может создать экземпляр, возможно, из-за отсутствия конструктора.
var user = fixture.Freeze<IUser>();
Так мне удалось заставить его работать, выполнив следующие действия
IUser user = new User(); // Create my IUser manually
fixture.Inject(user);
, а затем, наконец, создать тестируемой и достаточно уверенный экземпляр впрыскивается.
var sut = fixture.Create<LoginService>();
Я делаю это правильно? Могу ли я использовать Freeze, и я должен продолжать создавать свой IUser вручную и вводить его на прибор?
Посмотрите вперед к какой-либо помощи или информации
Конечно, я мог бы взять autofixture из уравнения, но я думаю, он пригодится даже тогда, когда не издевается, т. е. я могу сделать var user = new User(); var sut = new LoginService (пользователь); – Martin