我有一个模拟对象,该对象作为构造函数参数传递给另一个对象。

如何测试被 mock 对象的属性已被调用?这是我当前正在使用的代码:

INewContactAttributes newContact = MockRepository.GenerateMock<INewContactAttributes>();
newContact.Stub(x => x.Forenames).Return("One Two Three");
someobject.ConsumeContact(newContact);
newContact.AssertWasCalled(x => { var dummy = x.Forenames; });

除在“someobject”中多次使用Forenames属性上的getter之外,此方法有效。那就是当我收到“Rhino.Mocks.Exceptions.ExpectationViolationException:INewContactAttributes.get_Forenames();预期为#1,实际为#2。”

只需使用
newContact.AssertWasCalled(x => { var dummy = x.Forenames; }, options => options.Repeat.Any());

不起作用,并给出以下错误:

“期望已从等待的期望列表中删除,您是否调用了Repeat.Any()?AssertWasCalled()不支持此功能。”

那么我该如何满足多次通话呢?

最佳答案

newContact.AssertWasCalled(x => { var dummy = x.Forenames; }, options => options.Repeat.AtLeastOnce());Repeat.Any不能与AssertWasCalled一起使用,因为0会算作任何数字...因此,如果未调用AsserWasCalled,即使未调用ojit_code也会返回TRUE。

关于c# - 使用AAA在属性获取程序上进行Rhino Mocks AssertWasCalled(多次),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/729267/

10-13 06:47