MyService
유형의 구성 요소를 대상으로하는 단위 테스트 (NUnit)를 작성했습니다. 예 :AutoFixture의 AutoMoqData가 모의 객체를 생성하지 않는 이유는 무엇입니까?
public class MyService : IMyService
{
private readonly IMyRepo _myRepo;
public MyService (IMyRepo myRepo)
{
_myRepo = myRepo;
}
public MyService()
{
_myRepo = new MyRepo();
}
...
}
내 테스트 대상을 생성하는 factory로 AutoFixture를 사용하는 것을 시도하고있다. 또한 (AutoFixture) mock 종속성 (내 Moq 사용) 내 대상 채우려 고 노력하고있어. 다음은이 일에 내 시도이다
:
public class AutoMoqDataAttribute : AutoDataAttribute
{
public AutoMoqDataAttribute()
: base(new Fixture()
.Customize(new AutoMoqCustomization()))
{
}
}
내가 단위 테스트를 실행에 따라 : (@ploeh's blog post 기준)
[Test, AutoMoqData]
public void MyTest(MyService target)
{
...
}
[AutoMoqData]
속성은 AutoFixture의 AutoMoqCustomization
기능을 AutoFixture의 [AutoData]
속성을 확장 위에서 MyService
의 실제 인스턴스를 얻고 싶습니다. 내부에 Mock<IMyRepo>
종속성이 있습니다. 대신 MyRepo
의 구체적인 인스턴스가 나타납니다.
AutoMoqCustomization
은 인수가없는 가장 간단한 생성자를 호출하는 것으로 보입니다. AutoMoqCustomization
을 무시하고 대신 두 번째 생성자을 인스턴스화하도록 구성 할 수 있습니까?
<package id="AutoFixture" version="3.50.2" targetFramework="net452" /> <package id="AutoFixture.AutoMoq" version="3.50.2" targetFramework="net452" /> <package id="AutoFixture.NUnit3" version="3.50.2" targetFramework="net452" /> <package id="Moq" version="4.5.29" targetFramework="net452" /> <package id="NUnit" version="3.5.0" targetFramework="net452" />
NuGet 패키지 종속성을 나열하십시오. –
재현 단계를 게시하십시오. 의존성이 당신이 원하는 것이 아니라는 것을 어떻게 관찰하고 있습니까? –
감사합니다. @MarkSeemann. 그냥 새로운 프로젝트에서 최소한의 repro 시도하고 지금은 작동합니다. 곧 업데이트 될 예정입니다. – urig