문제가있는 것처럼 보입니다. IUser 생성자를 받아들이는 클래스 (LoginService)가 있습니다. 이것은 유닛 테스트가 아닌 통합 테스트를 수행하기위한 것입니다. 이러한 이유 때문에 이들을 모의하고 싶지는 않습니다. 이미 유닛 테스트가 있으며, Moq를 사용하여 작업하고 있습니다.AutoFixture : 인스턴스를 만들 수 없습니다. 공용 생성자가 없을 수도 있습니다.
내가 설정 내 고정 : - 그것은 불평, 나는 IUSER의 버전을 동결 할 수 있도록하려면 다음
var fixture = new Fixture();
그리고, 나는 다음을 시도했지만 나는 일을 가져올 수 없습니다 그것은 아마도 생성자가 없기 때문에 인스턴스를 생성 할 수 없습니다.
var user = fixture.Freeze<IUser>();
그래서 나는
IUser user = new User(); // Create my IUser manually
fixture.Inject(user);
다음 다음 마지막으로 SUT 과연 인스턴스가 주입을 만드는이 일을 작동하도록 관리했다.
var sut = fixture.Create<LoginService>();
이렇게 정확하게하고 있습니까? Freeze를 사용할 수 없으며 IUser를 수동으로 생성하여 조명기에 주입해야합니까?
어떤 도움이나 정보
내가 방정식에서 autofixture 걸릴 수 있지만 내 생각 : 대신 같은 사용자 인스턴스, 당신은 새 예를 매번 원하는 경우
, 당신은 또한
User
IUser
에 매핑 할 수 있습니다 그것은 비웃을 때조차도 편리합니다. var user = new User(); var sut = new LoginService (user); – Martin