问题标签 [moq]

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 投票
3 回答
91396 浏览

c# - 使用 Moq 确定是否调用了方法

据我了解,如果我调用更高级别的方法,我可以测试是否会发生方法调用,即:

我想测试一下,如果我打电话,SomeMethod()那么我希望SomeOtherMethod()会被调用。

我认为这种测试在模拟框架中可用吗?

0 投票
2 回答
6506 浏览

unit-testing - Moq-ing 类或接口有什么区别?

我一直在使用moq在我的单元测试中模拟对象,并且我在网站上看到关于 moq 的信息,它能够模拟类和接口。

前几天我和我的一个同事讨论过,他们说没有理由模拟类,我应该只模拟接口。

我对此并没有真正的答案....而且我似乎也无法在起订量网站上找到任何答案。

一个人永远不应该模拟课程,这是真的吗?我会说不,因为如果这是真的,那么 Moq 甚至都不会允许它......那么有没有时候在接口上模拟一个类更好?模拟类与模拟接口有什么区别?或者它真的只是一种偏好?

0 投票
4 回答
2150 浏览

unit-testing - 使用 ExpectSet() 和 It.Is 进行最小起订量测试() 的行为不符合...预期

我已将行为隔离到以下测试用例中。我会感谢任何能告诉我如何期待/验证属性集的人List<T>- 似乎里面发生了一些事情,It.Is<T>(predicate)现在对我来说没有多大意义。示例代码将作为 VS2008 中的控制台应用程序运行 - 您需要添加对 Moq 2.6 的引用(我在 2.6.1014.1 上) - 请尝试取消注释不同的 ExpectSet 语句以查看发生了什么...

0 投票
4 回答
6005 浏览

c# - 使用 Moq 调用验证受保护的抽象方法

假设我有以下课程:

我也有课

我正在使用 Moq,我想编写一个测试来验证当我调用 BaseMethod() 并且 runMethod1 为 true 时正在调用 ChildMethod1()。是否可以使用 Moq 创建 TestBase 的实现,调用 BaseMethod() 并验证在 Moq 实现上调用了 ChildMethod?

0 投票
2 回答
3743 浏览

c# - 起订量有问题

我正在尝试最小起订量,但在以下测试机构中遇到了问题:

抛出:

System.ArgumentException:对不可覆盖成员的期望无效:p => p.Children.Contains(value(ZooCms.Core.Tests.Model.ZooNodeTest+<>c__DisplayClass0).child.Object)。

而且我不太确定它的起订量,但我正在测试的代码相当简单。我不确定这是否重要,但 ZooNode 是一个抽象类。

提前致谢。

编辑

这是darin响应建议修改后的代码:

它现在抛出

测试方法 ZooCms.Core.Tests.Model.ZooNodeTest.TestSetParentAddsNodeToParentNodeList 抛出异常:System.NullReferenceException:对象引用未设置为对象的实例。

0 投票
2 回答
625 浏览

c# - 为什么 Rhino.Mocks 和 Moq 说 Bar 是不可覆盖的成员?

有人可以解释为什么使用最新版本的 Moq 和 Rhino.Mocks 框架的测试都失败了,抱怨 Bar 不是虚拟/可覆盖的方法:

如果我将 Bar 方法声明为虚拟,则两个测试都会通过。我不明白为什么我必须将 Bar 声明为虚拟的。不是已经是虚拟的了吗?它来自界面。

0 投票
4 回答
1235 浏览

c# - 为什么这个 NUnit+Moq 测试失败了?

我希望你知道,因为我没有看到。无论谁弄清楚如何实现此测试试图实现的目标,都会获得奖励积分。

0 投票
2 回答
2205 浏览

unit-testing - Moq:如何断言我的模拟对象上的方法没有运行?

我有模拟工作,我测试模拟对象上的方法是否使用正确的参数调用,并返回正确的结果。

现在我想检查另一个条件。在这种情况下,不应在模拟对象上运行任何方法。如何在单元测试中表达这一点?

0 投票
6 回答
730 浏览

c# - 为什么我的对象模拟失败?

我正在使用最小起订量,似乎无法让我的单元测试通过看似简单的模拟场景。

关于我做错了什么的任何指示?我的单元测试报告:-

Assert.AreEqual 失败。预期:<1>。实际:<0>。

0 投票
1 回答
143 浏览

c# - 我应该使用模拟测试方法实现吗

我在使用 moq 进行一些单元测试时遇到了一些麻烦。

如果我有这样的功能:

然后我有一个测试来检查 GetName 函数的返回值:

所以我的问题是应该像这样定义模拟:

或像这样:

使用第二种方式的唯一问题是,我觉得我将方法 GetName 的实现绑定为始终在内部使用“My com command”字符串。

这是我应该做的还是我做错了。
我才刚刚开始进行单元测试和模拟,所以我仍然不确定一切应该如何结合在一起。