특정 인터페이스의 새 인스턴스를 만드는 팩토리 메소드가 있습니다.종속성 주입 (structuremap)을 사용하는 테스트 메소드
저는 StructureMap을 사용하여 인터페이스의 새 인스턴스를 만듭니다.
어떻게이 단위 테스트를 할 수 있습니까?
특정 인터페이스의 새 인스턴스를 만드는 팩토리 메소드가 있습니다.종속성 주입 (structuremap)을 사용하는 테스트 메소드
저는 StructureMap을 사용하여 인터페이스의 새 인스턴스를 만듭니다.
어떻게이 단위 테스트를 할 수 있습니까?
공장에서 IContainer를 ctor 종속성으로 사용하도록 설정하면 컨테이너를 스텁 아웃 할 수 있습니다.
구조 맵을 구성하여 팩토리를 인스턴스화하면 IContainer가 구조 맵에 의해 자동으로 해결되어야합니다.
편집 :
나는 시험이 방정식에서 구조지도를 가지고, 이런 식으로 뭔가에 대해 생각했다 :
[Test]
public void ResolvesFooFromContainer()
{
var expectedFoo = new Foo();
var container = MockRepository.GenerateStub<IContainer>();
container.Stub(c => c.GetInstance<Foo>()).Return(foo);
var factory = new FooFactory(container);
var createdFoo = factory.CreateFoo();
Assert.That(createdFoo, Is.EqualTo(expectedFoo));
}
예는 코뿔소 모의 객체와 NUnit를 사용하지만 물론 당신이 할 수있는 테스트하고 스텁 원하는대로.
나는 마침내 내가 원하는 것을 얻을 수있었습니다.
생각해 보면 고립 된 환경에서 테스트를 수행하려는 것입니다.
그래서 저는 mock 객체로 구조체를 초기화 할 필요가 있었고 factory 메소드를 테스트 할 수있었습니다.
가능한 복제본 : [StructureMap on unit testing] (http://stackoverflow.com/questions/2216643/structuremap-on-unit-testing) – dwonisch