Jest单元测试学习--项目实践

发表于:2019-2-11 10:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:t880216t    来源:TesterHome

  这里针对项目中封装好的api接口及request请求方法,用jest做一个单元测试调用。
  正常的测试方法是要通过界面触发页面事件,调用models去走api的请求流程。如下图:
   
  在界面业务流程还未通,页面不可见时,我们可以通过jest来针对这个api进行测试。
   
  例子:
  这里api调用了我们封装好的request方法,这是常见的开发模式。我们需要验证其对于GET、POST等请求多种模式的请求的处理正确。
  POST请求的api如下:
//api.js
importrequestfrom'../utils/request';
exportasyncfunctionqueryGetGongyiList(params){
returnrequest('/Api/Warning/warningList',{
method:'POST',
body:params,
});
}
  在api.js同级目录下新建测试脚本:api.test.js(这个位置是随意的,只要你保证它能找api.js即可)
//导入fetch
require('isomorphic-fetch')
global.FormData=require('FormData')
//导入被测文件
letApiTest=require('./api.js')
//准备参数
constparams={"ccserm":"F3C1CDFBF309DA9C3BCKF703C37350C98A67LJ","lat":"32.161689","lon":"118.697109","p":"1","place":"0","ps":"10","time":"2"}
//测试
test('测试请求方法正确,验证接口返回。',()=>{
//expect.assertions(1);
returnApiTest.queryGetGongyiList(params).then((result)=>{
expect(result.code).toBe('10000')
})
})
  这里要注意下package.json的配置,参照如下:
"jest":{
"preset":"react-native",
"globals":{
"__DEV__":true
},
"transform":{
"^.+\\.js$":"babel-jest"
},
"transformIgnorePatterns":[
"node_modules/(?!react-native|react-navigation)/"
]
},
  执行结果:
PASSapp/services/api.test.js
√测试请求方法正确,验证接口返回。(209ms)
TestSuites:1passed,1total
Tests:1passed,1total
Snapshots:0total
Time:3.309s
Ranalltestsuitesmatching/^D:.react.bangbang.app.services.api\.test\.js$/i.
Processfinishedwithexitcode0

    上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号