Rhino mocks 在NBEHAD中对多个场景使用模拟

Rhino mocks 在NBEHAD中对多个场景使用模拟,rhino-mocks,nbehave,Rhino Mocks,Nbehave,我使用NBehave编写我的故事,并使用Rhino mock模拟测试系统的依赖关系 但是,当从一个场景移动到下一个场景时,我在重置模拟依赖项中的预期行为时遇到问题 我只想声明在两种情况下调用了存储库上的save方法: dependancyRepository.AssertWasCalled( ear => ear.Save( Arg<IDependancy>.Is.Equal(dependency) ) ) DependencyReposito

我使用NBehave编写我的故事,并使用Rhino mock模拟测试系统的依赖关系

但是,当从一个场景移动到下一个场景时,我在重置模拟依赖项中的预期行为时遇到问题

我只想声明在两种情况下调用了存储库上的save方法:

dependancyRepository.AssertWasCalled( ear =>
    ear.Save(
        Arg<IDependancy>.Is.Equal(dependency)
    )
)
DependencyRepository.AssertWasCalled(ear=>
耳朵,救命(
参数等于(依赖项)
)
)
但这在每个场景中都被调用,在我的第二个场景中都失败了,因为Rhino Mocks希望只调用一次。我不想被迫使用一个明确的预期,但看起来我也会这样做

NBEHAD中有几个关于Rhino Mock的例子,但我不能给出一个有多个场景的例子。还有一些具有NBehave和多个场景,但没有模拟

还有谁碰到过这个问题吗


干杯

如果您不想断言在每个场景中都调用了.Save(…),那么不要为每个场景设置该期望,只为您期望调用它的场景设置该期望


如果这不能回答您的问题,请用更多信息澄清您的问题;不清楚您想做什么。

在相关场景的Then子句中调用AssertWasCall,而不是在任何其他场景中。

我不确定我是否完全理解您的场景。如果调用AssertWasCalled,如果未调用该方法,它将抛出。这就是这个方法的目的,如果你不想这样,你就不能不调用它吗?也许有一些期望被违背了,但从您的示例中,我看不出DependencyRepository变量是如何创建和配置的,所以很难判断出是什么错误。也许你也可以分享这些代码?