gpt4 book ai didi

rhino-mocks - 使用Rhino Mocks模拟out参数,该参数是在我正在测试的方法中创建的

转载 作者:行者123 更新时间:2023-12-03 07:57:06 25 4
gpt4 key购买 nike

尝试模拟以下方法:

bool IsLoginValid(LoginViewModel viewModel, out User user);

最初尝试过:
dependency<ILoginService>()
.Stub(serv =>
serv.IsLoginValid(
Arg<LoginViewModel>.Is.Equal(a_login_viewmodel),
out Arg<User>.Is.Anything)
.Return(false);

但是,这失败了,因为它是out参数。做了一些搜索并更改了我的代码,如下所示:
dependency<ILoginService>()
.Stub(serv =>
serv.IsLoginValid(
Arg<LoginViewModel>.Is.Equal(a_login_viewmodel),
out Arg<User>.Out(new User()).Dummy))
.Return(false);

那也失败了。我需要'new User()'来作为'Anything'参数。我认为这是一个特定的实例。

任何想法如何解决这个问题?多谢你们。

最佳答案

尝试“OutRef”选项。它接受一个params object [],该对象定义每个out参数的结果。由于只有一个,因此只需要一个结果。这是我尝试过的快速样机,可在您遇到的情况下起作用:

var foo = MockRepository.GenerateStub<IFoo>();
var viewModel = new LoginViewModel();
User temp;
foo.Stub(f => f.IsLoginValid(viewModel, out temp)).OutRef(new User()).Return(false);

User outparam;
Assert.IsFalse(foo.IsLoginValid(viewModel, out outparam));

关于rhino-mocks - 使用Rhino Mocks模拟out参数,该参数是在我正在测试的方法中创建的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3365237/

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