简易计算器做单元测试

JUnit4

JUnit4通过注解的方式来识别测试方法。目前支持的主要注解有:

  • @BeforeClass 全局只会执行一次,而且是第一个运行
  • @Before 在测试方法运行之前运行
  • @Test 测试方法
  • @After 在测试方法运行之后允许
  • @AfterClass 全局只会执行一次,而且是最后一个运行
  • @Ignore 忽略此方法

基本测试

新建一个项目叫JUnitTest,编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。

package rgh;

public class Calculator {
	
	private static int result;
	public void add(int n){
		
		result = result+n;
		
	}
	public void substract(int n){
		result = result-n;
	}
	public void multiply(int n){
		result = result/n;
		
	}
	public void square(int n){
		result = n*n;
	}
	public void squareRoot(int n){
		result = (int)Math.sqrt(n);
	}
	public  void clear1(){
		result =0;
		
	}
	public void reciprocal(int n){
		result =1/n;
		
	}
	public void absolute(int n){
		result= Math.abs(n);
	}
	public int getResult(){
		return result;
	}
/*这一步是以后生成,初始没有
	public void clear() {
		// TODO Auto-generated method stub
		
	}
	public void add1(int n) {
		// TODO Auto-generated method stub
		
	}
	public void divide(int i) {
		// TODO Auto-generated method stub
		
	} 
	*/

}
  1. 将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”
  2. 在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮
  3. 然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了
  4. 生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New JUnit Test Case”。

 

之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。
完整的CalculatorTest代码如下:

public class CalculatorTest {
 private static Calculator calculator = new Calculator();
 @Before
 public void setUp() throws Exception { 
calculator.clear(); } 
@Test 
public void testAdd() { 
calculator.add(3); calculator.add(4);
 assertEquals(7, calculator.getResult());
 }
 @Test
 public void testSubstract() {
 calculator.add(8); calculator.substract(3); 
assertEquals(5, calculator.getResult());
 } 
@Ignore
("Multiply() Not yet implemented")
 @Test 
public void testMultiply() {
 fail("Not yet implemented"); 
} 
@Test 
public void testDivide() {
 calculator.add(8); calculator.divide(2);
 assertEquals(4, calculator.getResult());
 }
 }

 运行结果如下:

 

进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,个测试失败”。
限时测试
对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环,因此一定要采取一些预防措施。限时测试是一个很好的解决方案。我们给这些测试函数设定一个执行时间,超过了这个时间,他们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。要实现这一功能,只需要给@Test标注加一个参数即可,代码如下:

 

@Test(timeout = 1000)
    public void squareRoot() {
        calculator.squareRoot(4);
        assertEquals(2, calculator.getResult());
}

 

 

测试异常

JAVA中的异常处理也是一个重点,因此你经常会编写一些需要抛出异常的函数。那么,如果你觉得一个函数应该抛出异常,但是它没抛出,这算不算Bug呢?这当然是Bug,并JUnit也考虑到了这一点,来帮助我们找到这种Bug。例如,我们写的计算器类有除法功能,如果除数是一个0,那么必然要抛出“除0异常”。

更多前去下载完整文档。。。。。。。

 

 

 

 

 

 

 

  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷爱码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值