程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么??

开发过程中遇到jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?的问题如何解决?下面主要结合日常开发的经验,给出你关于jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?的解决方法建议,希望对你解决jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?有所启发或帮助;

我已经阅读了 jest 文档,我认为它们按此顺序运行。我也明白 globalSetup 在不同的进程中运行,因此不与常规测试套件共享任何范围,而是与 globalTeardown 共享任何范围,因此这将是启动测试数据库服务器的好地方。

无论如何,我不清楚我是否做对了以及@R_656_10675@用其他的。

解决方法

globalSetup

导出 async 函数的模块的路径,该函数将在一切之前运行一次。此处定义的全局变量只能在 globalTeardown 中读取。

通常,模拟任何依赖项更有意义,但如果您别无选择,只能启动在测试期间绝对必须运行的数据库或其他外部服务,则可以使用 globalSetup做吧。


setupFiles / setupFilesAfterEnv

setupFiles 是将在每个测试文件和安装测试框架之前运行一次的模块列表。

setupFilesAfterEnv 是将在每个测试文件之前但在环境中安装测试框架之后运行一次的模块列表。

通常 setupFilesAfterEnv 是应该在每个测试文件之前运行的任何设置代码的正确位置。仅当您有特定原因需要在安装测试框架之前运行代码时才使用 setupFiles

您可以将 setupFilesAfterEnv为全beforeAll

如果必须在每个测试文件的开头执行某些操作(例如:configuring the Enzyme adapter),则在 setupFilesAfterEnv 文件中执行一次是有意义的。


beforeAll

jest 将在运行其他任何东西之前运行一次测试文件中的所有 beforeAll 函数。

对于必须在特定测试文件开头运行一次的代码,请使用 beforeAll


示例

package.json

{

  ...

  "jest": {
    "globalSetup": "./globalSetup.js","globalTeardown": "./globalTeardown.js","setupFiles": ["./setupFile.js"],"setupFilesAfterEnv": ["./setupFileAfterEnv.js"]
  }
}

globalSetup.js

@H_538_10@module.exports = async () => {
  console.log('in globalSetup');
  global.GLOBALSETUP = 'globalSetup';
};

globalTeardown.js

@H_538_10@module.exports = async () => {
  console.log('in globalTeardown');
  console.log(global.GLOBALSETUp);
};

setupFile.js

console.log('in setupFile');
global.order = [];
global.order.push(1);

setupFileAfterEnv.js

console.log('in setupFileAfterEnv');
global.order.push(2);

test.js

beforeAll(() => {
  console.log('in beforeAll');
  global.order.push(3);
});

test('order',() => {
  expect(global.GLOBALSETUp).toBeUndefined();  // succesS
  expect(global.order).toEqual([1,2,3]);  // succesS
});

输出

Determining test suites to run...in globalSetup
  console.log
    in setupFile

      at Object.<anonymous> (setupFile.js:1:98)

  console.log
    in setupFileAfterEnv

      at Object.<anonymous> (setupFileAfterEnv.js:1:1)

  console.log
    in beforeAll

      at Object.<anonymous>.beforeAll (src/test.js:3:11)

 PASS  src/test.js
  ✓ order (4 ms)

Test Suites: 1 passed,1 @R_246_10586@l
Tests:       1 passed,1 @R_246_10586@l
Snapshots:   0 @R_246_10586@l
Time:        0.658 s,estimated 1 s
Ran all test suites.
in globalTeardown
globalSetup

Watch Usage: Press w to show more.
@H_673_116@
@H_673_116@

大佬总结

以上是大佬教程为你收集整理的Jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?全部内容,希望文章能够帮你解决Jest 中的 globalSetup、setupFiles、setupFilesAfterEnv 和 beforeAll 有什么区别,它们的具体用途是什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。