2009-11-24 2 views
2

Moq-wrapper를 가지고 있지 않다면 mock을 검증하는 방법을 누군가에게 설명 할 수 있습니까? MockFactory.Verify()하지 않습니다. 명시 적으로 mock을 검증 할 수 있고 mockfactory를 사용하여 mock을 작성해야합니다. 의견을 보내주십시오.Moq-wrapper가없는 모의 객체를 검증 할 수 있습니까?

+0

원하는 주요 단계의 작은 샘플을 제공 해야 할 것. 그들은 엄격 할 것인가? "하지 않는다"는 것은 무엇을 의미합니까? 왜 부족한가요? 또는 그것은 당신을 위해 작동하지 않을 것인가? VerifyAll이 더 이상 사용합니까? –

+0

MockFactory를 사용하여 모의 객체를 구현할 때, 일부 메소드를 구현할 때 불리언 매개 변수를 사용하여 검증을 추가할지 여부를 지정할 수 있도록 구현했습니다.이 메소드는 mockFactory.Verify()를 호출 할 때 검증을 발생시킵니다. 저는 우리가 mockFactory를 사용하는 대신 단위 테스트에서 mock 객체에 직접 Verify 메소드를 사용하면 단위 테스트를 읽는 것이 더 이해할 수 있다고 생각합니다. 그리고 나는 그것이 어떻게 행해질 수 있는지 알고 싶습니까? 어떤 도움 ?? –

답변

4

팩토리를 사용하여 모의 객체를 만드는 경우 팩토리를 사용하여 모의 객체를 검증해야한다는 의미는 아닙니다. 때로는 공장을 사용하여 모든 나의 mock에 대해 한 곳에서 MockBehavior을 설정하기도합니다. 그러나 나는 아직도 나의 mock의 일부를 별도로 확인한다. 당신은 당신의 시험 방법의 개체를 조롱 한 경우

var factory = new MockFactory(MockBehavior.Strict); 
var fooMock = factory.Create<IFoo>(); 

fooMock.Setup(foo => foo.Bar()); 

fooMock.Verify(foo => foo.Bar, Times.Once()); 

업데이트 경우 , 당신은 다음과 같이 다시 모의 래퍼를 얻을 수 있습니다 :

IFoo foo = fooMock.Object; 

//... 

var fooMockAgain = Mock.Get(foo); 
+0

사실 나는 설정과 함께 mockfactory를 사용하여 필요한 mock을 작성하는 함수가 작성된 클래스가 있습니다. 이 함수는 실제 객체 즉, mockedthing.object를 반환합니다. 객체 주 함수에서 나는 단지 더미 객체를 만들기 위해이 함수를 호출합니다. 그래서 여기 mockfactory만을 사용하여 검증 할 수있을 것 같습니다. 다른 방법이 있는지 알고 싶습니다. –

+0

답변을 업데이트했습니다. –

관련 문제