2009-06-26 3 views
0

NBehave를 사용하여 내 이야기를 작성하고 Rhino Mock을 사용하여 테스트중인 시스템의 종속성을 조롱했습니다.NBehave에서 여러 시나리오의 Mock 사용

그러나 한 시나리오에서 다음 시나리오로 이동할 때 내 모의 의존성에서 예상되는 동작을 재설정하는 데 문제가 있습니다. Rhino의 모의 객체가 될 것으로 예상하기 때문에

dependancyRepository.AssertWasCalled(ear => 
    ear.Save(
     Arg<IDependancy>.Is.Equal(dependency) 
    ) 
) 

그러나이 각 시나리오에서 호출되는 내 두 번째 시나리오에서 실패

나는 단지 내 저장소에 저장하는 방법은 두 가지 시나리오에 호출되었음을 주장 할 한 번 불렀다. 나는 명백한 외출을 사용하도록 강요 받고 싶지는 않지만 내가 가지고있는 것처럼 보입니다.

Rhino Mock이있는 NBehave의 몇 가지 예가 있지만 여러 시나리오가있는 것은 아닙니다. NBehave와 여러 시나리오가 있지만 모의는 없습니다.

다른 사람이이 문제를 겪고 있습니까?

건배

+0

나는 귀하의 시나리오를 완전히 이해하고 있는지 잘 모르겠습니다. AssertWasCalled를 호출하면 메소드가 호출되지 않으면 Throw됩니다. 이것이이 방법의 목적이며, 만약 당신이 그것을 원하지 않는다면, 당신은 그것을 단지 부르지 않을 수 있습니까? 어쩌면 침해당하는 기대가있을 수 있지만 귀하의 예에서 dependancyRepository 변수가 어떻게 생성되고 구성되었는지를 볼 수 없으므로 잘못된 것을 알기 어렵습니다. 아마 당신도 그 코드를 공유 할 수 있을까요? –

답변

0

당신이 .Save (...)이 각 시나리오에 대한 그 기대를 설정하지 않는, 각 시나리오라는 것을 주장 할 원하지 않는 경우는 만 그것을 설정 시나리오를 호출해야합니다.

귀하의 질문에 답변이되지 않는 경우 자세한 정보를 통해 질문을 명확히하십시오. 당신이하려고하는 것이 확실하지 않습니다.

0

해당 시나리오의 Then 절 중에 AssertWasCalled 호출을 만들고 다른 시나리오에서는 호출하지 마십시오.