(十)snapshot快照测试

1、快照测试

项目中经常有一些配置文件。比如

export const generateConfig = ()=>{ return { server :'http://localhost', port:'8080', domain:'localhost' } }

对应它的测试用例可以这样写 snapshot.test.js 

import { generateConfig } from "./snapshot.js";
test('测试 generateConfig', () => {
	expect(generateConfig()).toEqual({
		server: 'http://localhost',
		port: '8080',
		domain:'localhost'
	})
})

当配置项不断增加的时候,就需要不断去更改测试用例。

那么我们可以使用快照写测试用例:

test('测试 generateConfig', () => {
 expect(generateConfig()).toMatchSnapshot()
})

运行测试用例之后会自动生成快照文件,对应目录如下:  

 (十)snapshot快照测试

toMatchSnapshot() 会为expect 的结果做一个快照并与前面的快照做匹配。(如果前面没有快照那就保存当前生成的快照即可)

这在配置文件的测试的时候是很有用的,因为配置文件,一般不需要变化。

当然,确实要改配置文件,然后要更新快照,也可。

2、配置文件修改

如果配置文件发生变化,运行时时会提示已经发生变化,可以根据提示的命令确定修改文件:‘npm test -- -u’

(十)snapshot快照测试

 

 如果添加new Date()这样的参数,配置文件在实时的更新,如何处理呢?对应代码如下:

snapshot.js

export const generateConfig  = () => {
	return {
		server: 'http://localhost',
		port: '8080',
		domain:'localhost',
		time:new Date()
	}
}

测试用例snapshot.test.js

import { generateConfig } from "./snapshot.js";

test('测试 generateConfig', () => {
	expect(generateConfig()).toMatchSnapshot({
			time :expect.any(Date)//Date String Number等等
		})
})

3、行内快照  

首先需要安装 prettier ,否则行内快照无法执行。

安装命令:npm install prettier

 

安装完成之后,修改测试用例:

test("测试 generateConfig", () => {
  expect(generateConfig()).toMatchInlineSnapshot(
    {
      time: expect.any(Date),
    }
  );
});

运行测试用例之后,会多出一个参数来,结果如下:

test("测试 generateConfig", () => {
  expect(generateConfig()).toMatchInlineSnapshot(
    {
      time: expect.any(Date),
    },
    `
    Object {
      "domain": "localhost",
      "port": "8080",
      "server": "http://localhost",
      "time": Any<Date>,
    }
  `
  );
});
上一篇:Maven多模块+SpringBoot 编译失败:程序包xxx不存在


下一篇:SpringBoot 与 SpringCloud 的版本对应详细信息