저는 AutoFixture를 처음 사용하기 때문에 다음 아이디어가 합리적이든 합리적인 것인지 잘 모릅니다. 나는 통합 테스트을 담당하고 있으며 Castle Windsor를 많이 사용하는 응용 프로그램이 있습니다. 종속성 관리를 단순화하고 테스트를 애플리케이션 코드와 비슷하게 만들기 위해 필자는 테스트 초기화 코드에서 Windsor 컨테이너를 만들고 container.Resolve를 사용하여 테스트중인 코드를 인스턴스화했습니다. 특정 상황에서 유연성이 제한되어 있으므로 그 접근 방식을 벗어나고 싶습니다. ,AutoFixture를 사용하여 Castle Windsor를 사용하여 응용 프로그램을 통합 테스트하는 방법
public sealed class DependencyAttribute : AutoDataAttribute
{
public DependencyAttribute()
: base(new Fixture().Customize(new WindsorCustomization()))
{
}
}
public class WindsorCustomization : ICustomization
{
public WindsorCustomization()
{
// build container here using SUT installers
}
public void Customize(IFixture fixture)
{
fixture.Inject<IThing>(new Thing());
}
}
이이 작업을 수행 하 : 다음 작업을 수행 할 수
[Theory]
[Dependency]
public void TestWithDependencies(IThing thing)
{
thing.Hello();
}
이 일어날 수 있도록 : 내가하고 싶은 무엇
는 다음과 같이 보일 검사를하다 하지만 필자가 피하고자하는 점은 Windsor 컨테이너에서 AutoFixture IFixture 로의 구현 매핑에 대한 모든 인터페이스를 복사해야한다는 것입니다.
Welp! AutoMoq 용 코드를 살펴보고 내가하고 싶은 일을하는 법을 정확히 보았습니다. 아무도 관심이 없다면 코드를 답안에 게시 할 수 있습니다. – thebeekeeper
예, AutoMoq이 잘 작동하는 방법에 꽤 가깝습니다. –