Jon*_*nas 6 javascript performance node.js jestjs performance.now
我正在为使用performance.now(). 但这似乎不起作用。
perf-hooks有没有办法从全球范围内使用jest.config.js?performance或者用例如来模拟和覆盖它的方法Date?
我尝试过使用classToTest.jswith来覆盖性能Date,但是因为它performance已经在导入时使用了,所以不起作用。
简化示例:
classToTest.test.js
import ClassToTest from "./classToTest";
test("constructor works", () => {
expect(new ClassToTest()).not.toBeNull();
});
Run Code Online (Sandbox Code Playgroud)
类测试.js
const timer = performance.now();
class ClassToTest {
...
Run Code Online (Sandbox Code Playgroud)
jest 的输出是ReferenceError: performance is not defined.
Bri*_*ams 10
如果您的Jest测试环境是jsdom(默认),那么它提供了一个类似浏览器的环境,其中包含全局对象的模拟performanceWindow,因此performance.now将自动定义。
如果您的Jest测试环境是,node那么您将需要提供您自己的performance全局。
这可以通过向数组添加安装文件来完成setupFilesAfterEnv:
笑话配置.js
module.exports = {
setupFilesAfterEnv: [ './setup.js' ]
}
Run Code Online (Sandbox Code Playgroud)
...并在定义全局的设置文件中performance:
安装程序.js
global.performance = require('perf_hooks').performance;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8226 次 |
| 最近记录: |