【发布时间】:2011-03-15 04:45:52
【问题描述】:
如何使用 Rhino Mocks 将值插入到动作中?
Register() 执行分配给稍后在函数中使用的局部变量的操作:
var result = EnumResult.Timeout;
something.Register<EnumResult>(r => result = r);
<do things with result which need to be unit tested>
我希望能够将一个值作为 r 注入到操作中(因为它在函数中定义)并测试之后会发生什么。
【问题讨论】:
-
@I Clark 你能解释一下你的测试场景吗?当您无法从测试环境访问该局部变量时,似乎您在询问如何将名为 result 的局部变量打包到 lambda 中。我想如果这是一个纯粹的模拟场景,我想知道为什么需要调用 lambda - 似乎需要以某种形式或形式验证参数;类似于 Expect.Call(()=>mockedSomething.Register
(null)).Constraints(Is.Matching >(c=>c.YourVerificationCodeHere));我在正确的轨道上吗? -
@J Trana:嗨。我希望能够控制在我的单元测试中
Register()的回调操作中分配给 result 的 r 的值。我不是在测试Register()函数本身,而是在分配 result 之后执行的操作。 RE:调用:这是我运行测试而不是抛出 null 异常的唯一方法。
标签: c# unit-testing rhino-mocks action