如何使用 Jest 测试用 CoffeeScript + React jsx 编写的 React 组件?
Jest 提供的唯一 CoffeeScript 示例使用普通的 CoffeeScript,并且不适用于 CoffeeScript + React JSX(到达 a 时的语法错误<
)。
我试过的
第一次尝试:execSync
// preprocessor.js
var execSync = require('exec-sync');
module.exports = {
process: function (src, path) {
return execSync('browserify -t coffee-reactify ' + path);
}
};
这可行,但需要太多时间(对于虚拟测试来说,12 秒很好)。
然后我尝试了:
第二次尝试:coffee-react-transform
// preprocessor.js
var coffee = require('coffee-script');
var transform = require('coffee-react-transform');
module.exports = {
process: function(src, path) {
if (path.match(/\.coffee$/)) {
return coffee.compile(transform(src), {'bare': true});
}
return src;
}
};
这会引发一个奇怪的错误,例如:
TypeError: function() {...} 没有方法'getPooled'
“没有方法'getPooled'”的唯一谷歌结果是这个要点,它准确地显示了我得到的错误,但没有提供其他见解。
第三次可能的尝试
我想我可以使用coffee-reactify,但它返回一个异步流,而 in 中的process
函数preprocess.js
是同步使用的,到目前为止还没有办法同步读取流。
我能做些什么?