gpt4 book ai didi

.net - 犀牛模拟 : AAA test syntax without static MockRepository methods?

转载 作者:行者123 更新时间:2023-12-01 01:38:15 25 4
gpt4 key购买 nike

我一直在使用(并喜欢)新的 Rhino Mocks AAA 语法。然而,让我困惑的一件事是我必须像这样创建我的 stub 和模拟:

var v1 = MockRepository.GenerateStub<MyClass>();

而不是使用实例化的 MockRepository:
var mr = new MockRepository();
var v1 = mr.GenerateStub<MyClass>();

这种语法将使我的单元测试转换更容易。

从阅读 Ayende 的 wiki 看来,第二种语法应该可行,但我无法让它正常运行。如果我这样做,那么我必须使用 Record/Playback 块。在没有静态方法的情况下,我也找不到任何使用新语法的人的在线示例。

所以我的问题是,有没有其他人设法让 AAA 语法在不使用静态方法并且不必求助于记录/回放的情况下工作?如果是这样,我错过了什么?

最佳答案

我用反射器检查了犀牛模型。

MockRepository.GenerateStub 实际上创建了一个存储库并调用了非静态 stub 。这是静态方法实际执行的操作(从反射器复制)

public static object GenerateStub(Type type, params object[] argumentsForConstructor)
{
MockRepository repository = new MockRepository();
object obj2 = repository.Stub(type, argumentsForConstructor);
repository.Replay(obj2);
return obj2;
}

您似乎在代码中缺少对 Repository.Replay 的调用。

关于.net - 犀牛模拟 : AAA test syntax without static MockRepository methods?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/387390/

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