【问题标题】:How to test a Sails.js app using Jest instead of Mocha?如何使用 Jest 而不是 Mocha 测试 Sails.js 应用程序?
【发布时间】:2017-09-16 22:13:45
【问题描述】:

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/* 运行测试时,我遇到了以下日志:

此外,虚拟服务测试失败,因为它说它没有定义。

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

    ReferenceError: DummyService is not defined

【问题讨论】:

    标签: sails.js jestjs


    【解决方案1】:

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

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

    对风帆开玩笑意味着:

    • 每次测试都启动一个 Sails 实例,如果您有很多测试,这可能会占用大量内存。

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

    现在您可能会争辩说,sails 做错了,并且可以从初创公司开始制作以支持测试笑话推广的那种。

    【讨论】:

      【解决方案2】:

      我希望这仍然是相关的。

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

      1. Eslint
      2. 更漂亮
      3. 开玩笑

      在我的repo 中查看它是如何运作的,如果您有任何疑问,请随时与我联系。

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

      【讨论】:

      • 有趣的方法。只是好奇:使用"setupTestFrameworkScriptFile": "<rootDir>/jest/setup.js",Sails 提升的次数不会和测试文件一样多吗?那是我的问题。如果我有 10 个测试文件,它将提升 Sails 10 次,这并不是真正需要的......
      • 嗨@nbkhope。根据official doc,答案是否定的。它在所有测试之前只运行一次。你有什么相关的问题吗?
      • 这是错误的,根据官方文档“运行一些代码以配置或设置测试框架在每次测试之前的模块的路径。”。 Source
      • 爱德华你是对的。在每次测试之间提升和降低服务器。对于造成的混乱,我深表歉意。
      • 我添加了一个我认为更适合该问题的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2012-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多