问题标签 [mocking]
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.
testing - 什么是对象模拟,我什么时候需要它?
许多人在编写单元测试时使用 Mock Objects。什么是模拟对象?为什么我永远需要一个?我需要一个模拟对象框架吗?
java - 为什么我不能在我的 super() 调用周围使用 try 块?
因此,在 Java 中,构造函数的第一行必须是对 super 的调用……无论是隐式调用 super(),还是显式调用另一个构造函数。我想知道的是,为什么我不能在它周围放一个 try 块?
我的具体情况是我有一个模拟类进行测试。没有默认构造函数,但我想要一个使测试更易于阅读。我还想将从构造函数抛出的异常包装到 RuntimeException 中。
所以,我想要做的实际上是这样的:
但是 Java 抱怨说 super 不是第一个声明。
我的解决方法:
这是最好的解决方法吗?为什么Java不让我做前者?
对于“为什么”,我最好的猜测是 Java 不希望我的构造对象处于可能不一致的状态……但是,在进行模拟时,我不在乎。看来我应该能够做到以上...或者至少我知道以上对于我的情况是安全的...或者似乎无论如何都应该这样做。
我正在覆盖我在测试类中使用的任何方法,因此我没有使用未初始化变量的风险。
unit-testing - 你如何模拟一个密封类?
java - Java 最好的模拟框架是什么?
在 Java 中创建模拟对象的最佳框架是什么?为什么?每个框架的优缺点是什么?
c# - 单元测试 IHttpModule
鉴于此,您如何HttpModule
在 asp.net 中对a 进行单元测试HttpApplication
并且HttpContext
不实现接口?
c# - 我应该如何测试从 DataReader 填充列表的方法?
所以我正在处理一些对手动数据库操作很重的遗留代码。我试图在这里保持一些表面上的质量,所以我会尽可能多地使用 TDD。
我正在处理的代码需要填充,比方说List<Foo>
来自 DataReader,它返回正常运行的 Foo 所需的所有字段。但是,如果我想验证代码实际上是否为每个数据库行返回一个列表项,我正在编写如下所示的测试代码:
这也相当乏味且很容易损坏。
我应该如何处理这个问题,这样结果才不会是一团糟的脆弱测试?
顺便说一句,我目前正在为此使用 Rhino.Mocks,但如果结果足够令人信服,我可以更改它。只要替代品不是 TypeMock,因为他们的 EULA 对我上次检查的口味来说有点太吓人了。
编辑:我目前也仅限于 C# 2。
unit-testing - 单元测试中的随机数据?
我有一位同事为用随机数据填充其字段的对象编写单元测试。他的理由是它提供了更广泛的测试范围,因为它会测试很多不同的值,而普通测试只使用一个静态值。
我给了他很多不同的理由来反对这一点,主要是:
- 随机值意味着测试不是真正可重复的(这也意味着如果测试可以随机失败,它可以在构建服务器上这样做并中断构建)
- 如果它是一个随机值并且测试失败,我们需要 a) 修复对象 b) 每次都强制自己测试该值,所以我们知道它有效,但由于它是随机的,我们不知道该值是什么
另一位同事补充道:
- 如果我正在测试异常,随机值将无法确保测试最终处于预期状态
- 随机数据用于刷新系统和负载测试,而不是用于单元测试
还有其他人可以添加我可以给他的其他理由来让他停止这样做吗?
(或者,这是一种可接受的编写单元测试的方法,而我和我的其他同事错了吗?)
asp.net-mvc - 模拟 Asp.net-mvc 控制器上下文
所以控制器上下文取决于一些 asp.net 内部。有哪些方法可以干净地模拟这些以进行单元测试?当我只需要例如 Request.HttpMethod 返回“GET”时,似乎很容易用大量设置阻塞测试。
我在网上看到了一些例子/助手,但有些已经过时了。认为这将是保持最新和最伟大的好地方。
我正在使用最新版本的 rhino mocks
unit-testing - 我什么时候应该嘲笑?
我对 mock 和 fake 对象有基本的了解,但我不确定我对何时/何地使用 mock 有感觉 - 特别是因为它适用于这里的场景。
unit-testing - 模拟比存根好吗?
不久前,我阅读了Martin Fowler 的Mocks Aren't Stubs文章,我必须承认我有点害怕外部依赖会增加复杂性,所以我想问一下:
单元测试时使用的最佳方法是什么?
总是使用模拟框架来自动模拟被测试方法的依赖关系会更好,还是更喜欢使用更简单的机制,例如实例测试存根?