Che*_*Tai 6 javascript testing jestjs
在我当前的代码中,我使用process.cwd()获取当前工作目录,然后加载一些文件(如配置文件)。
下面我将展示我的代码的概念以及我如何测试它。
这是目录结构:
??? index.js
??? test
??? index.test.js
??? config.js
Run Code Online (Sandbox Code Playgroud)
索引.js
const readRootConfig = function() {
const dir = process.cwd();
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
Run Code Online (Sandbox Code Playgroud)
然后我用 jest 来测试这个文件。
index.test.js
import readRootConfig '../index';
it('test config', () => {
readRootConfig();
})
Run Code Online (Sandbox Code Playgroud)
运行测试后,consoledir是./(实际输出的是绝对路径,我在这个demo中只显示了相对路径)
但我希望 dir 的输出是./test.
是否有任何配置可以让 jest 使用test file folder该process.cwd()文件夹?
我认为解决方案之一是dir path作为参数传递,例如:
索引.js
const readRootConfig = function(dir) {
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
Run Code Online (Sandbox Code Playgroud)
但是我不太喜欢这个解决方案,因为这个方法是为了适应测试。
所以有什么建议吗?谢谢。
小智 4
也许您想制作一个可以知道需要什么文件的模块,您可以使用module.parent. 这是第一个需要这个模块的模块。然后你可以使用path.dirname来获取文件的目录。
所以index.js应该是这样的
const path = require('path')
const readRootConfig = function() {
const dir = path.dirname(module.parent.filename)
console.log(dir); // show the working dir
const config = require(`${dir}/config.js`);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3907 次 |
| 最近记录: |