0
我有一个理解LastCall()
方法的问题。Rhino Mocks LastCall语法帮助,.NET
下面是一个例子:
public interface IDemo
{
string Prop { get; set; }
void VoidNoArgs();
}
[TestMethod]
public void SetupResultUsingOrdered()
{
MockRepository mocks = new MockRepository();
IDemo demo = mocks.StrictMock<IDemo>();
SetupResult.For(demo.Prop).Return("Ayende");
using(mocks.Ordered())
{
demo.VoidNoArgs();
LastCall.On(demo).Repeat.Twice();
}
mocks.ReplayAll();
demo.VoidNoArgs();
for (int i = 0; i < 30; i++)
{
Assert.AreEqual("Ayende",demo.Prop);
}
demo.VoidNoArgs();
mocks.VerifyAll();
}
我说得对不对地说:
LastCall.On(demo).Repeat.Twice();
指定demo.VoidNoArgs()
;被称为两次,最后一次呼叫。
但是,在demo.VoidNoArgs()
之间有一个代码块。这是否意味着在使用LastCall
方法时不计算财产?
你想要达到什么目的?你不应该使用RhinoMock的Record/Replay语法,因为它现在已经死了。尝试学习与AAA(安排行为断言)suntax而不是 –
@Thoms,我不同意你。它们并存。 http://ayende.com/wiki/Comparison+of+different+Rhino+Mocks+syntaxes.ashx – Pingpong
我想我不明白这个问题。上述测试通过我的机器。你想让它失败吗?如果失败,测试if属性是否被调用多次。 – Gishu