jestjs - 如何在 JEST 测试类中使用布尔值
问题描述
我在文本文件中使用 jest 进行了非常简单的搜索,但我的 jest 测试从未通过,我不确定我在这里做错了什么,我也尝试过toBe
,但我仍然得到同样的错误。
这是我的代码:
const fs = require('fs');
const path = require('path');
var isFound = false;
test("searching in file", () => {
// actual test
fs.readFile(__dirname+'/files/test.txt', "utf8", (err, data) => {
if (err) throw err;
const fileStream = data.toLowerCase();
if(fileStream.includes('awesome')){
//console.log('found in file');
isFound = true;
} else {
isFound = false;
//console.log('not found in file');
}
})
expect(isFound).toEqual(true);
});
错误:
18 | })
19 | //expect(found).toEqual(true); > 20 | expect(isFound).toEqual(true); | ^ 21 | 22 | 23 | });
解决方案
试试fs.readFileSync
。问题是您的测试是异步的,因此在expect
读取文件之前发生。
此外,readFileSync
正在返回一个流,您需要调用toString()
.
const fileStream = fs.readFileSync(__dirname+'/files/test.txt').toString().toLowerCase();
推荐阅读
- r - 如何修复错误--> : NA/NaN 参数中的错误
- python - 设置文件的变量从 django 中的数据库管理
- html - 如何解决某些字母看起来比其他字母更大的问题
- spring-boot - Spring data mongo db没有创建一些集合
- styletron - 页面上的多个 styletron 树
- julia - Julia:图遍历的正确数据结构是什么?
- assembly - .text 和 .data 之间的区别
- javascript - 使用 redmine API 进行 POST 请求时出现 401 错误,即使我已包含 api 密钥
- c# - NLog 在日志文件中包含 EventId
- javafx - 如何在 JavaFX 中将窗格与另一个窗格绑定