2011-10-05 6 views
0

특정 인터페이스의 새 인스턴스를 만드는 팩토리 메소드가 있습니다.종속성 주입 (structuremap)을 사용하는 테스트 메소드

저는 StructureMap을 사용하여 인터페이스의 새 인스턴스를 만듭니다.

어떻게이 단위 테스트를 할 수 있습니까?

+0

가능한 복제본 : [StructureMap on unit testing] (http://stackoverflow.com/questions/2216643/structuremap-on-unit-testing) – dwonisch

답변

1

공장에서 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를 사용하지만 물론 당신이 할 수있는 테스트하고 스텁 원하는대로.

0

나는 마침내 내가 원하는 것을 얻을 수있었습니다.

생각해 보면 고립 된 환경에서 테스트를 수행하려는 것입니다.

그래서 저는 mock 객체로 구조체를 초기화 할 필요가 있었고 factory 메소드를 테스트 할 수있었습니다.