2011-10-14 4 views
2

나는 테스트의 거대한 지지자이며 단위 테스트를 작성할 수있는 여분의 인터페이스를 만들어야하는 것은 지불 할 작은 가격이라고 생각합니다. 나는 테스트 슈트에 구조 맵 automocker를 추가했다. 그리고 그것은 클래스를 조롱 할 수 없을 것 같다. Rhino 모의는 공용 메소드가 가상으로 표시되어있는 한 공용 클래스를 모의 할 수 있습니다.StructureMap의 AutoMocker를 사용하여 인터페이스없이 클래스를 조롱하려면 어떻게해야합니까?

가능하면 인터페이스를 제거하고 싶습니다. 모든 도움을 주셨습니다.

답변

1

내가 대답하기 전에 인터페이스를 사용하지 않을 때 StructureMap을 사용하는 목적을 완전히 상실한 점을 지적하고자합니다. (글쎄요, 완전하지는 않지만, 구조용 맵을 사용하기로 결정한 이유에 대해 질문 할 때 사용하기에 충분하지 않습니다 ...) 인터페이스없이 또는 인터페이스없이 하나의 클래스에 모든 논리를 넣거나 20-30 개의 클래스를 모두 묶어 두도록 할 것입니다. 그러면 다시 StructMap 사용의 요점이 누락됩니다. 당신이 구체적인 수업을 조롱 할 필요가있는 상황에서 이것이 효과가 있다고 생각한다고 말한 적이있다.

[Test] 
public void TestMethod() 
{ 
    // Arrange 
    var service = new RhinoAutoMocker<BusinessRuleService>(); 
    service.PartialMockTheClassUnderTest(); 
    service.ClassUnderTest.Expect(x => x.VirtualMethodImTesting()); 

    // Act 
    service.ClassUnderTest.CallableMethod(); 

    // Assert 
    service.ClassUnderTest.VerifyAllExpectations(); 
    // ... or other stuff ... 
} 
관련 문제