本次快照的对比对象是前一次的运行结果。开发者可以观察前后快照是否一致,如果有不一致,能进一步确认两者之间存在的差异是否合理:
it( 'renders correctly', () => { constlinkInstance = ( <Linkpage="
http://www.facebook.com">Facebook</Link>)consttree = renderer.create(linkInstance).toJSON() expect(tree).toMatchSnapshot()}) 组合为整体
我们建议尽可能在所有的场景里都用同一种测试工具,包括相同测试结构和语法(2)、断言函数(3)、测试报告和监控(4)。有时候即使只用一种环境配置(1)都可以满足两种以上的测试场景。
根据测试类型按需执行。
单元测试:给每个用例提供对应的模拟输入(6),确认输出是否如预期(3),还要使用覆盖率工具(7)检查用例的覆盖情况
集成测试:定义重要的跨模块的内部场景。单元测试相比,集成测试要求开发者需要用到 spies 和 stubs 预估程序的行为,而不是仅仅s是使用断言判断输出 (6)。浏览器或者类浏览器环境可以模拟在多个进程之间的集成测试,以及 UI 上的展示。
功能测试:通过在浏览器或类浏览器环境中,配合 API 的调用模拟用户行为进行测试。