我正在使用文本生成器,我想将生成的字符串与示例文件中存储的文本进行比较。文件具有某些行的缩进,并且在TS / js中构造这些字符串非常麻烦
是否有一种简单的方法可以从文件夹中加载相对于当前测试甚至Jest中的项目根目录的文本?
答案 0 :(得分:0)
尝试将您的txt导入笑话文件,然后与之进行比较:
const fs = require("fs");
const path = require("path");
const file = path.join(__dirname, "./", "bla.txt");
const fdr = fs.readFileSync(file, "utf8", function(err: any, data: any) {
return data;
});
expect(string).toBe(fdr)
答案 1 :(得分:0)
除了像@avshalom 在 Jest 中显示的那样简单地从文件加载文本之外,您还可以使用 snapshots 将生成器输出与文件进行比较。
就这么简单
it('renders correctly', () => {
const text = myGenerator.generate({...});
expect(text).toMatchSnapshot();
});
首次运行时,快照文件将由 Jest 写入。 (然后您通常会签入这些快照文件)据我所知,您无法控制快照文件的位置或如何构建多个文件(除了将测试拆分到多个测试文件之外)。
如果您想更好地控制文件的存储和拆分方式,请查看 jest-file-snapshot。