gpt4 book ai didi

rhino-mocks - 是否可以使用 Rhino Mocks 生成部分 stub ?

转载 作者:行者123 更新时间:2023-12-04 07:10:55 33 4
gpt4 key购买 nike

我通常是单元测试和模拟的新手,并且正在尝试为我的一个类设置测试,我想确保从同一类中的另一个方法调用特定方法。因此,我想使用具体的实现,但要模拟它的一部分。这可能吗?

公共(public)课 MyClass
{
公共(public)帐户[] GetAccounts()
{
返回GetAccounts(空);
}

public Accounts[] GetAccounts(CustomerId id)
{
如果(id == null)
{
//获取所有账户
}
}
}

因此,我试图设置一个将调用 GetAccounts() 的 stub (我想使用具体的实现),但我想检查该方法是否调用 GetAccounts(null)。

[测试]
公共(public)无效GetAccountsTest()
{
MockRepository 模拟 = new MockRepository();
MyClass stub = mocks.Stub();
使用(模拟。记录())
{
Expect.Call(() => stub.GetAccounts()).CallOriginalMethod();
Expect.Call(() => stub.GetAccounts(null));
}
模拟.ReplayAll();
stub.GetAccounts();
mocks.VerifyAll();
}

问题是具体类在 CallOriginalMethod() 行上被调用,当我调用 stub.GetAccounts() 时,我希望在重放期间调用该行。
因此,无论是在录制期间还是在我执行测试时,当我只是想模拟它们时都会调用实现的具体方法——正如我已经解释的那样。这是我的误解吗?我应该不能模拟/ stub 具体类和接口(interface)吗?

我是否需要将 virtual 关键字添加到我希望能够模拟的方法中?

这甚至可能吗?我该怎么做?

最佳答案

看起来您可能想要使用 PartialMock。它将允许您模拟虚拟方法。

关于rhino-mocks - 是否可以使用 Rhino Mocks 生成部分 stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/368493/

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