我正在用 Jest 测试 Stryker。Stryker 似乎不应用 Jest 测试。
如果我在代码中手动引入它们,这两个突变体不会通过测试,但是当我使用 Stryker 时它们会通过。
测试似乎不适用于突变体。我怎样才能让它工作?
这是我的配置:
包.json :
{
"name": "test-stryker",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"scripts": {
"test": "jest",
"test-mutation": "stryker run"
},
"author": "",
"license": "ISC",
"devDependencies": {
"npm": "^6.0.0",
"@stryker-mutator/javascript-mutator": "^3.3.0",
"@stryker-mutator/jest-runner": "^3.3.0",
"jest": "^26.0.0",
"jest-cli": "^26.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
config.jest.js :
'use strict'
module.exports = {
clearMocks: true,
collectCoverage: true,
collectCoverageFrom: [
'**/*.js',
'!**/reports/**/*.js',
'!**/test/**/*.js',
'!/node_modules/',
'!**/*.config.js',
'!**/*.conf.js'
],
coverageDirectory: 'reports/coverage',
testEnvironment: 'node'
}
Run Code Online (Sandbox Code Playgroud)
stryker.conf.js :
/**
* @type {import('@stryker-mutator/api/core').StrykerOptions} …Run Code Online (Sandbox Code Playgroud) 我使用 jest-dom 和 jsdom 在 Jest 中测试窗口的高度。
使用此代码:
import '@testing-library/jest-dom'
describe('test window height'), () => {
test('test the height'), () => {
expect(window.innerHeight).toBe(150) // 150 is an arbitrary value for testing the test !
})
})
Run Code Online (Sandbox Code Playgroud)
结果是一个错误,说:
预期:150
收到:768
使用innerWidth,接收值为1024
太好了,这意味着可以使用 Jest 和 jest-dom 测试窗口的大小。
但是 768 和 1024 是从哪里来的呢?它是默认值吗?将永远是?它是否可配置以及如何配置?