模块方向键不允许导入我的测试实用程序 [英] moduleDirectories key does not make it possible to import my test utils
本文介绍了模块方向键不允许导入我的测试实用程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用Jest和@testing-lib/react-native
测试我的EXPO Reaction Native应用程序。
我的package.json
中有以下设置。
"jest": {
"preset": "jest-expo",
"moduleDirectories": [
"node_modules",
"test-utils"
]
},
我的文件夹结构如下:
├──node_modules/
├──test-utils/
├──src/
└──package.json
src/
包含测试文件。我正在使用src/index.test.js
中的这个简单测试测试我的配置:
import { assert } from 'test-utils';
const sum = (a, b) => a + b;
describe('sum', () => {
assert({
given: 'two numbers',
should: 'add the numbers',
actual: sum(1, 3),
expected: 4,
});
});
其中assert
位于test-utils/index.js
:
const assert = ({
given = undefined,
should = '',
actual = undefined,
expected = undefined,
} = {}) => {
it(`given ${given}: should ${should}`, () => {
expect(actual).toEqual(expected);
});
};
export { assert };
如果我运行测试,则会收到错误:
Cannot find module 'test-utils' from 'index.test.js'
为什么?我的意思是我已经配置了moduleDirectories
键?🤔您如何解决这个问题?我非常希望能够将assert
导入为绝对路径,而不是相对路径。
推荐答案
我找到了解决方案。目前这些文档就是不好。
如果您有此文件夹结构
├──node_modules/
├──src/
├──utils/
└──package.json
然后,您希望将模块目录命名为:
"jest": {
"preset": "jest-expo",
"setupFilesAfterEnv": [
"@testing-library/react-native/cleanup-after-each"
],
"moduleDirectories": [
"node_modules",
"utils"
]
},
然后在utils/
内,您希望拥有.js
文件test-utils.js
。然后您可以在测试中从test-utils
导入。
.js
文件的名称。并且您放入moduleDirectories
的文件夹必须包含此.js
文件。
这篇关于模块方向键不允许导入我的测试实用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文