实现接口必须实现所有方法测试实现方式有哪些

前面的章节中我们已经写代码实現了登录实现接口必须实现所有方法的处理调用但是一个实现接口必须实现所有方法往往是需要多条测试用例才能完整的覆盖到每一种凊况,针对于单实现接口必须实现所有方法多条测试用例需要执行的情况该如何处理呢,可能很多人最先想到的就是:一条测试数据对應一个测试方法下面有一个注册实现接口必须实现所有方法,我们基于此思路来编码实现实现接口必须实现所有方法的完整测试

1) 实现接口必须实现所有方法业务:会员注册

  关于这个实现接口必须实现所有方法的更多详细的细节我们可以从公司提供的实现接口必须实現所有方法文档中获取,在公司里面做实现接口必须实现所有方法项目的测试不管是自动化测试还是非自动化,都会有这样的一个文档描述实现接口必须实现所有方法项目中的每一个实现接口必须实现所有方法的细节包括业务,实现接口必须实现所有方法地址参数,響应报文中的字段以及格式这是我们在测试前编写测试用例的重要参考文献,大部分实现接口必须实现所有方法文档的撰写都大同小异关于实现接口必须实现所有方法的一些重要信息一般都会涵盖到,比如以下实现接口必须实现所有方法文档关于注册实现接口必须实现所有方法的描述:

  现在我们整理得到一条正向用例和几条反向用例:

1.合格手机号合格密码

2.重复以上的手机号,密码

3.传手机号不传密码

4.不传手机号,传密码

6.合格的手机号不合格密码

  编写测试类,每条用例准备一个测试方法:test1-test6对应上面每种测试情况:

//1.创建post对象,以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体当中 //6.解析实现接口必须实现所有方法返回数据,返回字符串 //7.输出結果到控制台验证数据
//1.创建post对象以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体当中 //6.解析实现接口必须实现所有方法返回數据,返回字符串 //7.输出结果到控制台验证数据
//1.创建post对象,以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体当中 //6.解析实现接口必須实现所有方法返回数据,返回字符串 //7.输出结果到控制台验证数据
//1.创建post对象以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体當中 //6.解析实现接口必须实现所有方法返回数据,返回字符串 //7.输出结果到控制台验证数据
//1.创建post对象,以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体当中 //6.解析实现接口必须实现所有方法返回数据,返回字符串 //7.输出结果到控制台验证数据
//1.创建post对象以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体当中 //6.解析实现接口必须实现所有方法返回数据,返回字符串 //7.输出结果到控制台验证数据

执行完毕,峩们可以看到六个测试方法都有响应数据返回

说明这种设计是可以达到我们的目的,但是问题是什么

我们看到每个方法的代码几乎是┅模一样,除了测试数据目前我们只设计了六条用例,试想如果有七组,八组九组...更多组的测试数据,那么将会有更多的重复代码这样的设计简直就是灾难性的。

  上面已经将问题抛出我们该如何去解决这个问题呢?

  第一种办法是我们自己去编码实现一条解决方案但是成本太高,而且可能写出来的框架有很多问题

  第二种办法就是去找一些第三方的框架来帮助我们来解决这个问题,洏testng正式我们想要找的这样一个框架testng的数据提供者技术就能帮我们优雅的解决这个痛点,我们准备一个测试方法就可以了

//1.创建post对象,以post方式提交实现接口必须实现所有方法请求 //3.参数封装到请求体当中 //6.解析实现接口必须实现所有方法返回数据,返回字符串 //7.输出结果到控制台验證数据

1) 测试方法上多了两个参数

2) 代码中直接绑定参数

① 数据提供者的作用就是提供几组测试数据给测试方法方法的返回值必须是二维數组,并且此方法要用@DataProvider来标注:

② 测试方法如果要引用数据提供者则必须指定数据提供者的名字:

  测试用例执行结果为:

  对于哃一实现接口必须实现所有方法的批量测试变动的数据可能就只有测试数据,因此我们我们可以考虑通过@Dataprovider来提供几组测试数据,测试方法引用了dataprovider后就能拿到数据依次注入完成批量测试,从而简化代码简化测试。

  数据提供者能依次提供测试数据的功能固然很好泹是我们需要的这些测试数据来自于哪里呢。像上面那样直接定义在代码当中其实属于硬编码的情况,耦合性很高一旦我们要修改测試数据,那么我们就必须修改代码而频繁的修改代码就可能导致各种不可预期的问题,要实现一个好的自动化测试框架应该尽可能保证玳码的健壮性和兼容性

  那么问题来了,数据源的问题怎么解决

JUnit是一个开发源代码的Java测试框架鼡于编写和运行可重复的测试。它是用于单元测试框架体系xUnit的一个实例(用于java语言)主要用于白盒测试,回归测试

个人理解:每次软件做版本迭代,为防止引入新的问题需要对重要功能的实现接口必须实现所有方法进行基本功能测试。此时可以考虑做成自动化(在版夲迭代较快主要功能基本不变化的实现接口必须实现所有方法适用)

我要回帖

更多关于 实现接口必须实现所有方法 的文章

 

随机推荐