结对项目Junit测试用例

发表于:2015-6-01 11:57

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

 作者:luhan    来源:51Testing软件测试网采编

  题目:我们假设我们要写一个整数除法的类,并且给他写测试用例
  结对分工:滕娟负责写代码,搜集资料,整理,潘广玫负责进行测试,处理测试结果
  github地址链接: https://github.com/luhan420/jiedui/tree/master
  结对人地址链接:http://www.cnblogs.com/tj1024/p/4490680.html
  测试情况
  一.单元测试规范
  单元测试使用Junit4进行测试,Eclipse内置了Junit4的支持。
  1) 测试类命名
  在项目的DAO与service层的实现类都必须编写测试用例,action由于struts2.0支持测试,所以也应该测试:
  1. 测试用例命名规则为: 类名 + Test。(junit4支持非这样的命名方式,但是为
  了统一管理,还是采用这样的方式命名)
  2. 建立一个和src平行的test包,所有测试用例都放在相应的包内,便于统一管
  理,合成测试套件。
  3. 同一个包的测试用例,合成一个测试套件。
  4. 整个工程的测试套件,合成一个统一的测试套件。
  2) 测试用例的编写
  1. 测试方式都是test开头的方法(testXXXX),JUnit按照在测试用例中的顺序执
  行。测试方法可以和被测试的方法一一对应,测试方法也可以包含多个被测试的方法。
  2. 测试方法中,使用断言(assertXXX和fail,详细资料请查阅JUnit文档)来进行
  测试结果判断,也可以辅以文字打印说明,如果测试程序抛出异常,则显示为错误,如果断言失败,则显示故障。
  3. 测试用例必须覆盖被测试类、方法的所有功能,包括正常情况、异常情况和发
  生错误的情况都必须覆盖,才能保证测试的完整性。
  3) 测试数据的准备
  为了防止数据库的更改对测试结果的影响,测试数据由统一的sql脚本来创建,测试前执行一下脚本创建数据。也可以使用数据回滚的方式进行与数据相关的测试。
  4) 实体层的测试
  由于本次项目的Entity model由之前的贫血模型改为到充血模型,所以对于Entity的测试不能够再忽略,对于Entity自身的除set/get以为的方法都应该进行单元测试。
  5) DAO层的测试
  每一个DAO类都必须编写测试用例,对DAO的每一个公开方法进行测试,测试用例必须使用有代表性的测试代码,覆盖的所有可能的输入和输出情况,包括创建,更改,删除对象以及输入错误数据等测试。
  6) Service层的测试
  Service层的测试必须测试Service对象是否满足功能要求,事务完整性等功能。
  7) Struts层和浏览器层的测试
  待定…
  二.Eclipse中JUnit的用法
  这里不详细介绍JUnit的用法,详细的用法自己找文档进行学习
  下面举一个简单的例子说明Eclipse中JUnit的用法:
  我们假设我们要写一个整数除法的类,并且给他写测试用例:
  1) 建立Math类
  /**
  * @创建时间:May  9,2015
  * @描述:  */
  public class Math {
  public static int divide(int x,int y) {        return x/y;
  }
  public static int multiple(int x,int y) {        return x*y;
  }
  }
  2) 建立测试用例
  选中需要建立测试用例的包,选择new->other。
  这里main方法不需要,我们可以直接用IDE进行测试。 setUp()方法在测试方法前调用,一般用来做测试准备工作。 tearDown()方法在测试方法后调用,一般作测试的清理工作。
  setUpBeforeClass()方法在整个类初始化之后调用,一般用来做测试准备工作。 tearDownAfterClass()方法在整个类结束之前调用,一般作测试的清理工作。 constructor()为是否包含构造方法。
  选择下一步:
  选择需要测试的方法,完成。
  系统生成以下代码
  /**
  * @创建时间:May 9, 2015
  * @描述:  */
  public class MathTest {   @BeforeClass
  public static void setUpBeforeClass() throws Exception {  }
  @AfterClass
  public static void tearDownAfterClass() throws Exception {  }
  @Test
  public void testDivide() {   fail("Not yet implemented");  }
  @Test
  public void testMultiple() {   fail("Not yet implemented");
  }
  }
  说明:
  @BeforeClass标签注释的方法用于在整个类测试过程的初始化后调用一次,@AfterClass标签注释的方法则是整个测试类结束之前调用一次。这2个标间的搭配可以避免使用@Before、@After标签组合在每个测试方法前后都调用的弊端,减少系统开销,提高系统测试速度。(不过对环境独立性的测试还是应当使用@Before、@After来完成)
  @Test标签用来标注待测试的方法,按照类中声明的顺序执行。
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号