首页 > 软件测试/ 正文
接口测试原则之测试代码中的判断
2012-09-18 11:20:11 ℃前几天把我之前整理的接口测试原则发了上来,不过没有人评论,想想估计写的太简单了,没有几个人明白我说什么,不过前几天有个同学关注到我的这个blog,还问了我问题,我真是很激动,边把他提的问题与关于这条原则的一些理解,发出来与大家分享。
接口测试原则
1、用例代码简单,只覆盖单个场景,不能写判断,如if怎样,则这判断什么,否则判断什么。尽量不catch异常,使用时要配置fail断言一起使用。
2、接口测试代码做到只依赖被测试接口,不要准备数据或者验证数据时调用你还不能完全信任的系统接口(这点可能会有很多争议)。
3、接口要操作数据不能依赖数据库原有的数据,接口产生的数据必须清理。
4、对于接口返回要通过断言进行验证,必须做到用例设计要求。
5、Mock的原则是为了把测试的重点与精力放到我们代码逻辑上来,mock的目标就是成功模拟场景。
他的问题和我提的第一个原则有关,是关于测试代码中的含有if的问题,他觉得一些数据校验的方法,实在是太乱了,不好维护。
我研究了一下他发给的代码,有两种情况,第一种
public void doAssertItemConfirmStatus(long itemId, int sign) {String resultSql = "select * from wlb_order_item where id =" + itemId;Map sqlMap = wlbJdbcTemplate.queryForMap(resultSql);if (sign == 1) {assertThat(sqlMap.get("confirm_status").toString(), equalTo("1"));} else if (sign == 2) {assertThat(sqlMap.get("confirm_status").toString(), equalTo("2"));}。。。} |
对于这类来讲,由于判断的值是我们调用传递的,是明确知道值的,所以问题不大,一般这种我一般会这样写
assertThat(getConfirmStatus(), equalTo("1")); |
对于出现这类判断的原因,我想主要在于我们对于预期值的理解上,我们的每个断言,都必须要清楚要比较什么字段,有明确的字段预期值,而测试代码出现if的原因在于:没有搞清楚预期,如果一个断言要验证什么,还要根据一些情况进行判断,或者预期值还要经过计算,查询数据库之类的操作获得这样其实有出问题的可能了
举个简单的例子
我们要测试这样一个方法 int add(a,b)
我们的正确的断言应是 assertEquals(add(1+2),3),而不是assertEquals(add(1+2),validAdd(2+1))
更多郑州北大青鸟培训真的像传说中的那样吗,郑州计算机培训学校哪家比较不错,郑州IT培训学校有哪些专业呢,郑州的计算机中职学校,河南信阳计算机中专技术学校,郑州学平面设计的学校哪家好相关文章
- Java集合框架的总结
- 大大优化JAVA程序方法
- JAVA技术:代码实现验证码图片的生成
- Java并发编程之同步互斥问题
- 对话马丁·福勒(Martin Fowler)——第四部分:灵活性与复杂性
- 软件测试管理以及与自动化测试的完美结合(上)
- 结对探索式测试的体会
- 软件测试工程师面试杂谈
- 谁能成为软件测试架构师
- javaScript测试框架jasmine介绍(一)
- 软件测试领域架构
- 探秘软件质量保证的五大法则
- 解决“CMMI后遗症”
- 怎样进行软件过程改进
- 开发计划与软件测试
- 软件测试管理之QA是天使还是魔鬼
- 实用SOA测试指南:测试流程起始步骤
- 关于软件质量和软件测试的一点点看法
- 软件接口测试之质量与进度
- 度量项目质量优劣的六个维度
- 小议软件项目的管理
- 关于软件、硬件、及芯片级防火墙
- 买笔记本电脑要注意什么?
- CMD命令集全部放送
- 物理内存与虚拟内存区别
- 组装电脑选CPU怎样才能选适合的主板
- 软件开发设计专业有想象中的那么难吗
- 软件的女生真的是考研考到其他专业比较有出路吗
- 郑州Java零基础培训班有哪些
- 搜索
-
- 热门标签