junit3和junit4的比较
来源:互联网 发布:linux下日志管理系统 编辑:程序博客网 时间:2024/05/29 18:05
JUnit3部分:
在junit3里面对于一个测试用例的定义时需要继承一个TestCase,而且对于其中的每一个测试方法都要一test命名开头;在每一个测试用例里面都会写有一个setup()的方法,这个方法主要作用是用于初始化数据和便于以后测试时共享数据的;
一般按照习惯来讲,我们总是习惯在setup方法里面new 一些新的对象,这也是每一个测试人员所要遵守的规定,每一次进行测试的时候都要用一个全新的对象,以防止有副作用产生;
而在teardown()方法里面一般都是进行一些对于相应对象销毁的操作,(在每一个测试方法执行结束之后就会自动执行此方法)。
我在自己的工程里面写了一个简单的小例子来展示一下:
package com.sise.lh.lab01;public class FindNumber { private double a; private double b; private double c; public FindNumber() { // TODO Auto-generated constructor stub } public double Max(double num1,double num2) { return (num1>num2?num1:num2); } public double Min(double num1,double num2) { return (num1<num2?num1:num2); }}
下面是相应的junit3测试代码:
package com.sise.lh.test01;import com.sise.lh.lab01.FindNumber;import junit.framework.TestCase;/*在junit3里面每一个测试用例或者测试类都要继承一个testcase*/public class FindNumberTestWithJunit3 extends TestCase { public FindNumber f1; /* setup方法里面的内容会在每一个测试方法执行之前都运行一遍,主要作用是用于初始化数据和共享数据 */ protected void setUp() throws Exception { f1 = new FindNumber(); // 每一次都用一个全新的对象来进行测试,这是测试的基本原则,以防止有副作用产生 } /* 主要作用适用于销毁一些相应的对象 */ protected void tearDown() throws Exception { super.tearDown(); } /* 在junit3里面的每一个测试方法都要求以test开头 */ public void testMax() { double num1 = 10; double num2 = 20; double result = f1.Max(num1, num2); assertEquals(20.0, result); } /* 在junit3里面的每一个测试方法都要求以test开头 */ public void testMin() { double num1 = 10; double num2 = 20; double result = f1.Min(num1, num2); assertEquals(10.0, result); }}
运行结果如下:
到了junit4里面的时候,相应的一些机制发生了一些变化,@Annotation注解注解标签出现了;
常见的@annotation注解有以下几种:
@Before,@After,@Test,@RunWith,@BeforeClass,@AfterClass,@Ignoreden等等一系列,再次就不一一列举了;
接下来还是针对刚才所写的那个类进行测试,只不过这一次使用junit4进行编写的
package com.sise.lh.test01;import static org.junit.Assert.*;import org.junit.After;import org.junit.Assert;import org.junit.Before;import org.junit.Test;import com.sise.lh.lab01.FindNumber;public class FindNumberTestWithJunit4 { public FindNumber f1; @Before public void setUp() throws Exception { f1=new FindNumber(); } @After public void tearDown() throws Exception { } @Test public void testMin() { double num1 = 10; double num2 = 20; double result = f1.Min(num1, num2); assertEquals(10.0,result,0); } @Test public void testMax() { double num1 = 10; double num2 = 20; double result = f1.Max(num1, num2); assertEquals(20.0,result,0); }}
运行结果如下:
0 0
- Junit3和junit4的比较
- junit3和junit4的比较
- junit3和junit4的区别
- Junit3 与Junit4 比较
- JUnit4、JUnit3比较差异
- Junit3 与Junit4 比较
- junit3和junit4的使用区别
- JUnit3和Junit4简介
- Junit3和Junit4区别
- Junit4快速入门及与Junit3的比较
- Junit3和Junit4使用区别
- junit3.8和junit4的最简单的区别
- junit3.8和junit4的最简单的区别(转)
- 基于Junit3.8和Junit4.x的单元测试详解
- junit3和junit4的一个入门例子程序
- JUnit3 与 JUnit4 的区别
- JUnit3 与 JUnit4 的区别
- junit3与junit4的区别
- 每天一篇面试题(四)
- 【普通莫队选讲】BZOJ2038 BZOJ3289 BZOJ3781
- 简单的win32应用程序:弹跳的小球(使用双缓冲)
- 交换瓶子
- TCP报文格式详解
- junit3和junit4的比较
- 初学C#,总结一下.sln和.csproj的区别
- VirtualBox虚拟vdi磁盘扩容 201
- 个人理解的SpringAOP事务管理
- 简单的Android贪吃蛇
- Linux创建目录-mkdir命令,创建文件-vi touch,删除文件rm
- vuforia unity 项目嵌入iOS 报错 UnityGfxDeviceWorker(14):EXC_BAD_ACCE(code = 1,address = 0x1)
- Matlab的mod和rem
- 机器学习-第二天-线性分类器