当我们写测试用例的时候,很多时候需要对函数的返回值进行断言。这时候我们可以使用快照测试来验证函数的返回值是否正确。而 jest-snapshot-serializer-function-name 这个 npm 包,则能够非常方便地将函数的名称显示在测试结果里,帮助我们更好地理解测试结果。
安装
在项目根目录下,使用 npm 安装 jest-snapshot-serializer-function-name:
npm install --save-dev jest-snapshot-serializer-function-name
使用方法
- 在 jest.config.js 配置文件中,增加如下代码:
module.exports = { snapshotSerializers: ["jest-snapshot-serializer-function-name"], // ... };
- 在测试文件中,使用
expect
函数对函数的返回值进行断言:
const greet = (name) => `Hello, ${name}!` test("greet function should return expected value", () => { expect(greet("world")).toMatchSnapshot(); });
示例代码
// greet.js const greet = (name) => `Hello, ${name}!`; module.exports = greet;
// greet.test.js const greet = require("./greet"); test("greet function should return expected value", () => { expect(greet("world")).toMatchSnapshot(); });
输出结果如下:
// Jest Snapshot v1, https://goo.gl/fbAQLP exports[`greet function should return expected value 1`] = ` "Hello, world!" `;
指导意义
在编写项目测试用例时,我们经常需要在测试结果中查看测试函数的名称,以便更好地理解测试结果。而 jest-snapshot-serializer-function-name 正是为此而生,可以非常方便地将函数的名称显示在测试结果中。同时,使用 Jest 进行快照测试也是一个非常好的实践,能够大大提高测试代码的可维护性和可阅读性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f3607b1dbf7be33b2566ef1