问题标签 [rhino-mocks-3.5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
72 浏览

c# - 如果在 RhinoMock 中断言失败,则打印 GetArgumentsForCallsMadeOne

假设我有一个使用 RhinoMock 的测试。我使用的是 AAA 方法,所以通常以 fooMock.AssertWasCalled(x=>x.Foo(bar))

如果断言失败,我通常会添加如下所示的行 fooMock.GetArgumentsForCallsMadeOn(x=>x.Foo(null)).PrintDump()

所以我可以看到在 mock 上做了什么调用(这很有帮助,因为通常问题是 mock 是用错误的参数调用的)。

有什么办法可以自动化这个过程吗?那么,如果断言失败,告诉 RhinoMock 打印调用是在 mock 的方法上进行的吗?

0 投票
1 回答
91 浏览

rhino - 使用 Rhino Mocks 存根受保护的抽象方法

我有一个受保护的抽象方法。反正我可以存根吗?基本上模板方法调用该抽象方法,我需要它来存根它。该方法不能公开,因为它会破坏封装。无论如何我可以使用 Rhino Mocks 来实现它。我正在使用 3.5 版本。谢谢。

0 投票
1 回答
276 浏览

.net - Rhino Mock,RedirectToRoute 后获取 TempData

如何在 Rhino Mock 测试中 RedirectToAction 后获取 TempData?

代码

测试

0 投票
1 回答
57 浏览

c# - 在 Rhino Mocks 框架中连接 2 个约束的确切语法是什么?

我在 Rhino 源代码中看到以下代码:

但在实践中,我可以使用| || .

同样,&&&的工作方式相同。

为什么会这样?

0 投票
2 回答
1647 浏览

c# - 如何通过 RhinoMocks 中的指定条件从方法返回值?

如何使用 RhinoMocks 模拟以下行为?

被测方法调用接口上的 ReceivePayment 方法。

接口有 CashAccepted 事件。如果此事件已被多次调用(或通过某个条件),ReceivePayment 应返回 true。

如何完成这样的任务?

更新。

现在我执行以下操作:

StartCashReceiving 立即返回,因为里面有一个任务启动。但是下一行:paymentSysProvider.Raise(...) 正在等待 ReceivePayment 存根的完成!

0 投票
1 回答
29 浏览

unit-testing - 断言在验证参数正确时调用了一个方法

鉴于我的测试中的以下片段:

在内部target.SaveItem进行这样的调用:

provider.SaveItem(new SaveContract(item.Id, user, contents));传入provider的本地名称在哪里。mockProvider

我如何能:

  1. 验证同时也provider.SaveItem被调用
  2. 断言 , 和 的值item.Idusercontents应有的值。

我想我可能可以使用 mockProvider.AssertWasCalled 但无法弄清楚设置传递给构造函数的参数条件的语法SaveContract

TIA

0 投票
1 回答
910 浏览

c# - 无法从用法中推断类型参数 - 单元测试 C# 中的 Rhino 错误

浏览了网络论坛后,仍然无法在我对以下行的单元测试中纠正此错误。

最初,它运行良好,但该行如下所示:

我必须添加两个输出参数,我做到了。但它会引发如下错误:

错误 166 无法从用法中推断方法“Rhino.Mocks.SetupResult.For(T)”的类型参数。尝试明确指定类型参数。C:\Me\ControllerBaseTests.cs 473 13 个单元测试

有人可以帮我吗,我是新手。

0 投票
1 回答
472 浏览

c# - 模拟/存根系统资源(如 System.Threading.Mutex)的首选方式

我有 ac# 类,它使用 Mutex 来控制对全局共享资源的访问。除非创建共享资源,否则不会分配互斥锁。我正在使用该类的部分模拟来隔离对某些获取互斥锁的方法的测试,做一些工作,然后释放它(实际上没有创建共享资源或互斥锁实例)。

我很想知道是否有一种首选的方式来模拟互斥锁。我可以将对 WaitOne 和 ReleaseMutex 的真正调用抽象为类上的方法并模拟它们。我可以在测试中为类的 mutex 成员变量显式分配一个新的 mutex 实例(假设我妥协并让单元测试可以访问 setter)。我可以将互斥锁包装在另一个实现互斥锁方法的并行接口的类中,并将其注入到我的测试类中。

有没有更好的方法来模拟 System.Threading.Mutex 等系统资源?到目前为止,我选择将真正的调用抽象到类上的方法中并模拟它们。

0 投票
4 回答
2654 浏览

c# - 在单元测试中处理多个模拟和断言

我目前有一个使用实体框架进行 CRUD 操作的存储库。

这被注入到我需要使用这个 repo 的服务中。

使用 AutoMapper,我将实体模型投影到 Poco 模型上,并且 poco 由服务返回。

如果我的对象有多个属性,那么设置然后断言我的属性的正确方法是什么?

如果我的服务有多个 repo 依赖项,那么设置所有模拟的正确方法是什么?* - 为这些测试装置配置所有模拟和对象的类 [设置]?*****

我想避免进行 10 个测试,每个测试都有 50 个属性断言和数十个模拟设置。这使得可维护性和可读性变得困难。

我已经阅读了单元测试的艺术,并没有发现任何关于如何处理这种情况的建议。

我使用的工具是 Rhino Mocks 和 NUnit。

我也在 SO 上找到了这个,但它没有回答我的问题:正确地单元测试服务/存储库交互

这是一个表达我所描述内容的示例:

0 投票
1 回答
405 浏览

rhino-mocks - 检查是否调用了属性设置器

我有一门课,我正在单元测试,我想做的就是验证公共 setter 是否在属性上被调用。关于如何做到这一点的任何想法?

我不想检查是否设置了一个值来证明它被调用了。我只想确保构造函数使用 public setter 。请注意,此属性数据类型是原始字符串