是否有人在使用es2015语法编写jasmine / jest测试?它需要多少光泽/聚脂/分色层?
我在正确导入函数时遇到了问题。我有一个模块:…./utils/TweetUtils.js
'use strict';
export function getListOfTweetIds (tweets) {
return Object.keys(tweets);
};还有一个测试套件:
…./__tests__/TweetUtils-test.js
'use strict';
jest.dontMock('../TweetUtils');
import * as TweetUtils from '../TweetUtils';
describe('Tweet utilities module', () => {
it('has access to the TweetUtils methods', () => {
let testObj = {a:'a',b:'b',c:'c'};
// Passes
expect(TweetUtils.getListOfTweetIds).toBeDefined();
// Passes
expect(typeof TweetUtils.getListOfTweetIds).toBe('function');
// Fails
expect(TweetUtils.getListOfTweetIds(testObj)).toBeTruthy();
});
});如果我用下面这样的内容将控制台输出黑进套件:expect(‘’).toBe(TweetUtils);
据茉莉花报道:
- Expected: '' toBe: {
default: {
getListOfTweetIds: Function
},
getListOfTweetIds: Function
}看来import语句正在做一些事情,但它显然没有诚实地导入我的方法。当我使用命名函数语法:import {getListOfTweetIds} from ‘../TweetUtils’;导入时,我得到了相同的结果,但是如果我使用默认语法:import getListOfTweetIds from ‘../TweetUtils’;,第二个规范失败了--不再是typeof function,而是typeof object // => {default: Function}
我一直在整理文件和公开的问题。已经有几个月的相关问题,但已知的问题似乎不正确。我已经尝试导入我的jest.dontMock语句,以避免提升,大约:https://github.com/babel/babel-jest/issues/16,但没有骰子。
如果我修改TweetUtils.js以使用module.exports = function…并使用const myFunction = require(‘../TweetUtils’)将其带入套件,一切都会正常工作,但我并不觉得我在传递真正的ES2015魔力。当生态系统赶上新的语法时,每个人都只是在处理摇摇欲坠的工作吗?
发布于 2015-11-24 14:25:21
正如您已经说过的,import语句是挂起的,它会给jest自动模拟功能带来问题(在告诉jest取消模拟之前,这个模块是导入的)。
TweetUtils.getListOfTweetIds是正确导入的,但它是模拟的,所以每个调用都返回undefined。这就是为什么第三个期望失败的原因。
导入jest.dontMock语句可以工作(我测试过它),但在我看来它很脏(您真的想为每个测试模块创建一个“dont模拟模块”文件吗?)
您必须对测试模块使用require语法。替换
import * as TweetUtils from '../TweetUtils';通过
const TweetUtils = require('../TweetUtils');在我修复之前,它在开玩笑的例子中是一样的:jest#379
发布于 2018-11-29 10:57:40
问题似乎与巴别尔有关,而非玩笑。试试这个解决方案。
如果您使用的是“创建-反应-应用程序”,那么安装这些dev依赖项:
"babel-cli": "^6.26.0",
"babel-jest": "^22.4.1",
"babel-preset-react-app": "^3.1.1",并更新.babelrc (如果不存在此文件,则创建该文件):
{
"presets": [
"@babel/preset-env",
"@babel/preset-react"
]
}现在,jest和npm测试都发挥了应有的作用。
https://stackoverflow.com/questions/33882868
复制相似问题