gpt4 book ai didi

c# - Rhino Mocks AssertWasCalled(多次)使用 AAA 获取属性

转载 作者:IT王子 更新时间:2023-10-29 03:49:21 25 4
gpt4 key购买 nike

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

如何测试模拟对象的属性是否已被调用?这是我目前使用的代码:

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(); Expected #1, Actual #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即使未调用也会返回 TRUE。

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com