开玩笑-加载文本文件以获取字符串断言

时间:2018-12-19 12:20:49

标签: jestjs

我正在使用文本生成器,我想将生成的字符串与示例文件中存储的文本进行比较。文件具有某些行的缩进,并且在TS / js中构造这些字符串非常麻烦

是否有一种简单的方法可以从文件夹中加载相对于当前测试甚至Jest中的项目根目录的文本?

2 个答案:

答案 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