2013-06-21 2 views
0

특정 mocked 메서드가 호출되었는지 여부에 따라 true 또는 false를 반환 할 수있는 NUnit 및 Rhino Mocks를 사용하여 매개 변수화 된 단위 테스트를 작성하려고합니다. AssertWasCalled은 테스트가 즉시 실패하기 때문에 올바르지 않습니다. 나는 bool 값만 원한다.Rhino mock의 bool 값에서 메서드가 호출되었는지 확인하는 방법은 무엇입니까?

[Test] 
[TestCase(1,2, Result=false)] 
[TestCase(1,1, Result=true)] 
public bool SomeTest(int a, int b) 
{ 
    ... 
    someObject.CheckValues(a, b); // logs something if values are different. 

    return mockLogger.WasCalled(x => x.Log(null)); 
} 

WasCalledc가 존재하지 않습니다.

답변

1

스텁이 호출 할 때 부울을 설정하고 반환 mockLogger에 로그인 방법이 :

bool logMethodWasCalled = false; 
mockLogger 
    .Stub(x => x.Log(Arg<string>.Is.Equal(null)) 
    .Do(new Action<string>(_ => logMethodWasCalled = true)); 

// Run test... 

return logMethodWasCalled; 
0

그것은 기대 사용하는 것이 좋습니다 : 당신이 매개 변수가 있는지 확인하려면

mockLogger.Expect(x => x.Log(Arg<string>.Is.Anything)); 

mockLogger.VerifyAllExpectations(); 

을 널 (null) 사용 :

mockLogger.Expect(x => x.Log(Arg<string>.Is.Null)); 

또 다른 방법은 사용하는 것입니다

,
triggerManagerMock.AssertWasCalled(x => x.Log(Arg<string>.Is.Anything)); 

이 경우 스텁 메서드를 사용하여 동작을 모델링하고 AssertWasCalled를 사용하여 호출을 확인할 수 있습니다.