unit-testing - 模拟大返回结果

标签 unit-testing mocking phpunit mockery

在使用 phpunit 进行单元测试期间,我正在使用 mockery 来模拟对数据库的方法调用的返回结果(因此我实际上并没有访问数据库)。

特别是一种方法会返回大量结果。我模拟返回值的其他测试返回实际预期结果,通常是基本字符串。

对于这些非常大的结果,我应该在模拟中返回大结果(可能包括一个包含结果的文本文件吗?)或者我应该以不同的方式断言它们,也许只断言数组中的第一个元素或断言数组的结构?

模拟大数据返回的最佳实践是什么?

最佳答案

除非您想测试性能,并且 2 个、10 个或 100 个结果之间的行为没有预期的差异,否则无需针对大型集合进行测试。

通常,您想要找出行为差异所在,并围绕这些差异进行测试。因此,对于结果集,这通常意味着使用 0、1 和 2 个结果进行测试,因为任何比这更大的结果都会得到相同的处理。

事实上,您还想验证整个结果集的结构。如果您一次只测试一个结果,这样做会容易得多,这是您应该做的,正如单元测试中的“单元”可能暗示的那样。

关于unit-testing - 模拟大返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36740450/

相关文章:

php - 无法通过 PEAR 安装 PHPUnit,需要 PEAR Installer >= 1.9.2,无法从 1.9.0 升级 PEAR

unit-testing - 如何对 Excel VBA 代码进行单元测试

javascript - 在 AngularJS 中模拟 Controller 单元测试的依赖服务

java - 如何使用 JUnit/Mockito 模拟一个值来测试另一个方法中的条件?

javascript - 如何在 AngularJS 单元测试中模拟 $window.location.replace?

Python 模拟 : Mocking a function inside the function I'm testing

php - 在具有特定 php 版本的 phpunit 中运行测试

php - EcomDev Phpunit 测试在执行期间调用了两次

javascript - 使用 Jest 测试组件失败

java - ActivityUnitTestCase getActionBar() 返回 null