Appearance
快照
当我们有内容不会频繁更改时可以使用快照。一般用于检测配置项。
javascript
// myconfig.js
export const myconfig = () => {
return {
server: 'http://localhost',
port: 3000,
}
}
测试文件中
javascript
// myconfig.test.js
import {myconfig} from './myconfig';
test('测试快照', ()=>{
expect(myconfig()).toMatchSnapshot();
});
执行快照会在根目录下生成__snapshots__文件夹,里面是快照内容。
另外,如果在watch模式或者watchAll模式下更新配置文件,由于快照匹配不上,测试会通不过。此时在命令行可以根据提示展开可操作内容,如下图所示

其中的u能够接收这次配置变更并更新快照; i能够顺次比对所有配置变更,这在多配置内容时会很有用。
配置项里有动态值
有时配置项不会是一个固定值,而是根据代码计算出的,是动态的。这样的话每次快照都会不匹配。可以修改测试代码使之通过测试。
javascript
// myconfig.test.js
import {myconfig} from './myconfig';
test('测试快照', ()=>{
expect(myconfig()).toMatchSnapshot({
time: expect.any(Date) // expect.any(), 预期任意,参数可以任意给定类型
});
});
不想生成快照文件夹
需要插件支持。
npm install prettier --save
然后将测试代码里的toMatchSnapshot改为toMatchInlineSnapshot即可。执行后,会在测试代码下方生成快照字符串。