测试:将值插入到 Action

发布于 2024-10-22 03:20:11 字数 335 浏览 1 评论 0原文

如何使用Rhino Mocks 将值插入到操作中?

Register() 执行一个操作,该操作被分配给稍后在函数中使用的局部变量:

var result = EnumResult.Timeout;

something.Register<EnumResult>(r => result = r);

<do things with result which need to be unit tested>

我希望能够将一个值作为 r 注入到该操作中(正如函数中所定义的那样)并测试之后会发生什么。

How do you use Rhino Mocks to insert a value into an action?

Register() takes an action that is assigned to a local variable that is used later in the function:

var result = EnumResult.Timeout;

something.Register<EnumResult>(r => result = r);

<do things with result which need to be unit tested>

I want to be able to inject a value as r into the action (as it is defined in the function) and test what happens afterwards.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无敌元气妹 2024-10-29 03:20:11

难道您不能在测试中传递一个设置某些变量的 lambda,然后验证在测试结束时是否设置了该变量吗?像这样的事情:

var wasCalled = false;
mock.Stub(s => s.Register(r => wasCalled = true);
...
Assert.IsTrue(wasCalled);

这将确保您的“Register”方法正在调用传递给它的 lambda。

Couldn't you just pass a lambda in your test that sets some variable and then validate the variable was set at the end of the test? Something like this:

var wasCalled = false;
mock.Stub(s => s.Register(r => wasCalled = true);
...
Assert.IsTrue(wasCalled);

This will ensure your "Register" method is calling the lambda that is passed to it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文