问题标签 [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.
c# - 使用 Moq 确定是否调用了方法
据我了解,如果我调用更高级别的方法,我可以测试是否会发生方法调用,即:
我想测试一下,如果我打电话,SomeMethod()
那么我希望SomeOtherMethod()
会被调用。
我认为这种测试在模拟框架中可用吗?
unit-testing - Moq-ing 类或接口有什么区别?
我一直在使用moq在我的单元测试中模拟对象,并且我在网站上看到关于 moq 的信息,它能够模拟类和接口。
前几天我和我的一个同事讨论过,他们说没有理由模拟类,我应该只模拟接口。
我对此并没有真正的答案....而且我似乎也无法在起订量网站上找到任何答案。
一个人永远不应该模拟课程,这是真的吗?我会说不,因为如果这是真的,那么 Moq 甚至都不会允许它......那么有没有时候在接口上模拟一个类更好?模拟类与模拟接口有什么区别?或者它真的只是一种偏好?
unit-testing - 使用 ExpectSet() 和 It.Is 进行最小起订量测试() 的行为不符合...预期
我已将行为隔离到以下测试用例中。我会感谢任何能告诉我如何期待/验证属性集的人List<T>
- 似乎里面发生了一些事情,It.Is<T>(predicate)
现在对我来说没有多大意义。示例代码将作为 VS2008 中的控制台应用程序运行 - 您需要添加对 Moq 2.6 的引用(我在 2.6.1014.1 上) - 请尝试取消注释不同的 ExpectSet 语句以查看发生了什么...
c# - 使用 Moq 调用验证受保护的抽象方法
假设我有以下课程:
我也有课
我正在使用 Moq,我想编写一个测试来验证当我调用 BaseMethod() 并且 runMethod1 为 true 时正在调用 ChildMethod1()。是否可以使用 Moq 创建 TestBase 的实现,调用 BaseMethod() 并验证在 Moq 实现上调用了 ChildMethod?
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:对象引用未设置为对象的实例。
c# - 为什么 Rhino.Mocks 和 Moq 说 Bar 是不可覆盖的成员?
有人可以解释为什么使用最新版本的 Moq 和 Rhino.Mocks 框架的测试都失败了,抱怨 Bar 不是虚拟/可覆盖的方法:
如果我将 Bar 方法声明为虚拟,则两个测试都会通过。我不明白为什么我必须将 Bar 声明为虚拟的。不是已经是虚拟的了吗?它来自界面。
c# - 为什么这个 NUnit+Moq 测试失败了?
我希望你知道,因为我没有看到。无论谁弄清楚如何实现此测试试图实现的目标,都会获得奖励积分。
unit-testing - Moq:如何断言我的模拟对象上的方法没有运行?
我有模拟工作,我测试模拟对象上的方法是否使用正确的参数调用,并返回正确的结果。
现在我想检查另一个条件。在这种情况下,不应在模拟对象上运行任何方法。如何在单元测试中表达这一点?
c# - 为什么我的对象模拟失败?
我正在使用最小起订量,似乎无法让我的单元测试通过看似简单的模拟场景。
关于我做错了什么的任何指示?我的单元测试报告:-
Assert.AreEqual 失败。预期:<1>。实际:<0>。
c# - 我应该使用模拟测试方法实现吗
我在使用 moq 进行一些单元测试时遇到了一些麻烦。
如果我有这样的功能:
然后我有一个测试来检查 GetName 函数的返回值:
所以我的问题是应该像这样定义模拟:
或像这样:
使用第二种方式的唯一问题是,我觉得我将方法 GetName 的实现绑定为始终在内部使用“My com command”字符串。
这是我应该做的还是我做错了。
我才刚刚开始进行单元测试和模拟,所以我仍然不确定一切应该如何结合在一起。