J. *_*ers 7 javascript unit-testing reactjs jestjs react-testing-library
我想用 Jest 和 测试我的 Expo React Native 应用程序@testing-lib/react-native。
我在我的package.json.
"jest": {\n "preset": "jest-expo",\n "moduleDirectories": [\n "node_modules",\n "test-utils"\n ]\n },\nRun Code Online (Sandbox Code Playgroud)\n\n我的文件夹结构如下所示:
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80node_modules/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80test-utils/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80src/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80package.json\nRun Code Online (Sandbox Code Playgroud)\n\nsrc/包含测试文件。我正在通过以下简单测试来测试我的配置src/index.test.js:
"jest": {\n "preset": "jest-expo",\n "moduleDirectories": [\n "node_modules",\n "test-utils"\n ]\n },\nRun Code Online (Sandbox Code Playgroud)\n\nassert位于何处test-utils/index.js:
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80node_modules/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80test-utils/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80src/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80package.json\nRun Code Online (Sandbox Code Playgroud)\n\n如果我运行测试,我会收到错误:
\n\nCannot find module \'test-utils\' from \'index.test.js\'\nRun Code Online (Sandbox Code Playgroud)\n\n这是为什么?我的意思是我已经配置了moduleDirectories密钥?你该如何解决这个问题?我真的很希望能够assert作为绝对路径而不是相对路径导入。
我找到了解决方案。目前的文档很糟糕。
\n\n如果你有这个文件夹结构
\n\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80node_modules/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80src/\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80utils/\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80package.json\nRun Code Online (Sandbox Code Playgroud)\n\n然后你想像这样命名你的模块目录:
\n\n"jest": {\n "preset": "jest-expo",\n "setupFilesAfterEnv": [\n "@testing-library/react-native/cleanup-after-each"\n ],\n "moduleDirectories": [\n "node_modules",\n "utils"\n ]\n},\nRun Code Online (Sandbox Code Playgroud)\n\n然后在utils/你想要的.js文件中test-utils.js。test-utils然后您可以在测试中导入。
因此,关键是导出的模块的名称必须是文件的名称.js。并且您放入的文件夹moduleDirectories必须包含此.js文件。
| 归档时间: |
|
| 查看次数: |
4858 次 |
| 最近记录: |