Jestjs Jest-为字符串断言加载文本文件

Jestjs Jest-为字符串断言加载文本文件,jestjs,Jestjs,我正在开发一个文本生成器,我想将生成的字符串与存储在示例文件中的文本进行比较。文件中有些行有缩进,在TS/js中构造这些字符串非常麻烦 有没有一种简单的方法可以从相对于Jest中当前测试甚至项目根目录的文件夹中加载文本?尝试将txt导入Jest文件,然后与之进行比较: const fs = require("fs"); const path = require("path"); const file = path.join(__dirname, "./", "bla.txt"); const

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


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

尝试将txt导入Jest文件,然后与之进行比较:

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)

除了简单地从文件加载文本(如@avshalom在Jest中所示),您还可以使用它将生成器输出与文件进行比较

这很简单

it('renders correctly', () => {
  const text = myGenerator.generate({...});
  expect(text).toMatchSnapshot();
});
在第一次运行时,快照文件将由Jest编写。(然后您通常签入这些快照文件)据我所知,您无法控制快照文件的位置或如何构造多个文件(除了将测试拆分到多个测试文件之外)

如果您想要更多地控制文件的存储和分割方式,请签出