是否可以在CoffeeScript中编写酶测试?
// sample.test.coffee
React = require "react"
ReactDOM = require 'react-dom'
shallow = require('enzyme').shallow
test 'render', () ->
expect(shallow(`<span/>`).contains('does not matter')).toBe(true)
使用以上yarn test
会引发Unexpected token <
错误。并指向<span/>
的开头。我假设我缺少一些应该在jest.transform
配置中设置的预处理程序?还是其他?
答案 0 :(得分:0)
是的,有可能需要在Jest配置中正确设置预处理器:
test / javascript / preprocessor.js:
const coffee = require('coffeescript');
const babelJest = require('babel-jest');
module.exports = {
process: (src, path, ...rest) => {
if (coffee.helpers.isCoffee(path)) {
// Compile the CoffeeScript files to JSX
compiled_to_js = coffee.compile(src, {bare: true});
return babelJest.process(compiled_to_js, path, ...rest);
}
return src;
}
};
package.json:
"jest": {
"moduleFileExtensions": [
"js",
"coffee"
],
"testMatch": [
"**/__tests__/**/*.js?(x)",
"**/?(*.)+(spec|test).(js|coffee)?(x)"
],
"transform": {
"^.+\\.jsx?$": "babel-jest",
".*": "./test/javascript/preprocessor.js"
},
{...}
}