我正在使用Rhino.Mocks来测试系统。
我要检查调用.LoadConfig和.Backup方法的顺序。我需要.LoadConfig成为第一个。
目前代码是这样的:
var module1 = mocks.Stub<IBackupModule>();
var module2 = mocks.Stub<IBackupModule>();
module1.Expect(x => x.Name).Return("test");
module2.Expect(x => x.Name).Return("test2");
using (mocks.Ordered())
{
module1.Expect(x => x.LoadConfig(null));
module2.Expect(x => x.LoadConfig(null));
module1.Expect(x => x.Backup());
module2.Expect(x => x.Backup());
}
mocks.ReplayAll();
问题是,还有对.Name属性的调用,并且在调用它时我不感兴趣:在.LoadConfig之前或.Backup之后 - 它无所谓。
当我跑这个时,我得到了例外:Unordered method call! The expected call is: 'Ordered: { IConfigLoader.LoadConfig(null); }' but was: 'IIdentification.get_Name();'
有没有办法解决这个问题?
由于
答案 0 :(得分:1)
根据这个旧的CodeProject article,你可以“嵌套”你的Order()和Unordered()调用。也许这会让你得到你想要的东西。
“名称”属性是否被调用了很多次,以至于您不想将其设置为订购测试的一部分?