2009-06-26 61 views
0

我正在使用NBehave写出我的故事,并使用Rhino Mock来模拟出测试中的系统的依赖关系。在NBehave中使用多种场景的模拟

但是,我在从一个场景移动到另一个场景时,在重新设置模拟依赖关系中的预期行为时出现问题。

我只想断言,在我的仓库的保存方法,被称为在两种情况下:

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

但是这被称为在每个场景中,在我的第二个方案失败,因为犀牛嘲笑期望它是只叫一次。我不想被迫使用明确的期待,但它看起来像我也会有。

NBehave有Rhino Mocks的几个例子,但我不能有一个有多个场景的例子。有几个有NBehave和多个场景,但没有模拟。

其他人遇到这个问题?

干杯

+0

我不确定我完全了解你的情况。如果调用AssertWasCalled,如果该方法未被调用,则会抛出。这就是这种方法的目的,如果你不想这样做,难道你不能称它为?也许有一些预期被违反,但从你的例子我看不到你的dependancyRepository变量是如何创建和配置的,所以很难说出什么是错的。也许你可以分享这些代码? – 2009-06-26 15:13:34

回答

0

如果你不希望想要断定.Save(...)被称为在每个场景中,然后不设置这种期望每个场景,只是将其设置为您期望它被调用的场景。

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

0

在相关方案的Then子句中进行AssertWasCalled调用,而不是在其他任何其他方法中进行调用。