Template: http-mock

该模板可以支持 模拟数据异常 的场景,扩展了模拟 http 请求数据所需的配置,并且提供了两种断言方式:截图像素值对比页面元素节点判断

tiga.template('http-mock')
.config({
env: 'web',
pageUrl: 'https://wq.jd.com/mcoss/wxmall/home',
specs: [{
name: '主接口数据异常测试',
mock: [{
test: new RegExp('func=home_cover', 'g'),
data: { status: 500 }
}],
screenshot: true
}]
})

更详细的用法,可以参考 http-mock 模板单元测试代码

扩展的 API

Object: SpecOptions

http-mock 模板的用例配置项。

  • name <string> 用例名
  • waiting? <number> app.goto() 跳转后的等待时间
  • screenshot? <boolean> 是否使用截图对比来断言,当 screenshot 参数与 assert() 参数同为真值(Truthy)时,screenshot 参数优先
  • validScreenshot? <Buffer|string> 截图的预期参考值,支持 Bufferbase64 格式的图片。如果该值为空,则会把第一次获取的截图作为参考值
  • assert(expect, $)? <assert(expect, $)?> 元素节点断言回调
  • mock <MockOptions[]> 接口模拟参数

Object: MockOptions

模拟接口数据的配置项。

该模板是基于 page.addHttpRules(rules) 实现的,因此配置参数基本类似。

  • test <string|RegExp> url 匹配条件
  • data <ResponseOverride> 匹配命中后返回的响应对象

assert(expect, $)?

支持获取页面元素并执行断言的回调。

Assert: 截图像素值对比

截图对比是基于 jest-expect 的扩展 jestImageMatcher 实现的。

{
specs: [{
screenshot: true
}]
}

Assert: 页面元素节点判断

{
specs: [{
assert: async (expect, $) => {
expect(await $('.element')).toBeNull()
}
}]
}