处理固有的长时间运行测试(http请求)

时间:2014-01-01 23:51:19

标签: node.js mocha

我有几个做出http请求的测试。就其性质而言,这些测试往往需要至少500毫秒。我可能最终还是要添加更多内容,我认为最终所有请求都会使测试套件运行时间过长。还有一个问题是需要足够快的互联网连接来运行它们。

有几种方法可以解决这些问题:

  • 更新我的npm test脚本,故意排除这些测试。
    • 我还可以添加另一个包含测试的脚本,例如test-all。不确定是否有任何约定,或者test是否应该进行所有测试,而fast-test或其他内容应该跳过它们。
  • .skip添加到这些慢速测试中
    • 这需要在您真正想要测试时更改测试文件,所以我不想这样做。
  • mocha中的一些命令行参数可以显式跳过测试。不过,我不确定会有这样的事情。

是否有任何首选的方法来处理本身需要很长时间才能运行的测试?

2 个答案:

答案 0 :(得分:2)

避免编写需要很长时间才能运行的测试,除非它们是集成测试。

优选地,单元测试应该模拟响应,或者使用这样的参数声明请求,而不是实际执行HTTP请求并在响应上声明。

答案 1 :(得分:1)

这些情况被称为边界测试'。人们通常处理边界测试的方式'他们访问文件,进行数据库查询或做其他非代码的事情是这样的:

首先,不要直接在您的类代码中发出http请求,而是让另一个类负责http请求。

然后,让原始类调用另一个类来生成所需的所有http请求。

最后,在你的测试中,将http类分出来,这样就不会产生任何实际的http请求,并且仍然可以彻底测试原始类。

现在,您只需要测试新的http类,即可生成一次实际的http请求。所有其他测试都将使用模拟的http类。