如何使用Jest而不是Mocha来测试Sails.js应用程序?

时间:2017-07-17 18:11:19

标签: sails.js jest

documentation for Sails 0.12.11解释了如何使用Mocha框架设置测试。我想用Jest做到这一点。

我尝试使用bootstrap.test.js的相同代码,但将before替换为beforeAll,将after替换为afterAll;将this.timeout(5000)替换为jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000。因为Jest希望在一个文件中至少进行一次测试,所以我在那里做了一个虚拟测试以确保它没有抱怨。

然后,在另一个文件(some.test.js)中,我尝试引用我创建的虚拟服务,以查看是否有效。使用Mocha,默认情况下,任何Sails服务都应该可用,没有任何require语句。

it('should call the dummy service fine', () => {
  expect(DummyService.doSomething()).toBe('ok');
});

使用jest tests/*运行测试时,我遇到以下日志:

Sails console.error using Jest

此外,虚拟服务测试失败,因为它表示未定义。

 FAIL  tests/some.test.js
  ● should call the dummy service fine

    ReferenceError: DummyService is not defined

2 个答案:

答案 0 :(得分:3)

Jest似乎非常适合测试风帆。

Jest哲学是让许多测试与独立状态同时运行,这意味着jest无法使用全局设置文件。

使用风帆的jest意味着:

  • 每次测试都会启动一个sails实例,如果你进行了很多测试,可能会感到内存不足。

  • 自定义其orm(水线),以便为每个测试实例使用数据库的随机文件来完成清理状态。

现在你可能会认为帆是错的,可以从创业公司那里获得,以支持那种测试开玩笑。

答案 1 :(得分:1)

我希望这仍然相关。

我不会骗你。这并不容易:(。它花了我一整天,但毕竟我能够配置

  1. Eslint
  2. 更漂亮
  3. 玩笑
  4. 检查repo中的一切是如何运作的,如果您有任何疑问,请随时与我联系。

    https://github.com/tugorez/sails-jest