阿里 java 单元测试_java单元测试(JUnit)

单元测试是很重要的一个步骤。写代码的都应该会这个技能,自己写的代码自己测!

本文说的是java的单元测试,用的是JUnit通过注解的方式来识别测试方法

JUnit目前支持的注解有:

82f51099a2c8e2d9991485dd73f84504.png

下面基于IDEA介绍JUnit的基本应用

1.首先先新建一个java项目,我们编写一个Calculator类,做一个简单的计算机功能,里面有加减乘除的方法。然后进行单元测试:

9fd6500ca6e96a4fc6a06e97b7b6a725.png

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classCalculator {private static int result; //静态变量,用于存储运行结果

public void add(intn) {

result= result +n;

}public void substract(intn) {

result= result - 1; //Bug: 正确的应该是 result =result-n

}public void multiply(intn) {

}//此方法尚未写好

public void divide(int n) {//除法

result = result /n;

}public void square(intn) {

result= n *n;

}public void squareRoot(intn) {for (; ;) ; //Bug : 死循环

}public void clear() { //将结果清零

result = 0;

}public intgetResult(){returnresult;

}

}

View Code

2.再新建一个测试的类,这里需要引入JUnit的jar包,放心,idea直接会帮你引的。无非就是Alt+Enter的事

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

importorg.junit.Before;importorg.junit.Ignore;importorg.junit.Test;import staticorg.junit.Assert.assertEquals;import staticorg.junit.Assert.fail;public classCalculatorTest {private static Calculator cal = newCalculator();

@Beforepublic void setUp() throwsException {

cal.clear();//清空值

}

@Testpublic voidtestAdd() {

cal.add(10);

cal.add(1);

assertEquals(11,cal.getResult());//正确

}

@Testpublic voidtestSubstract() {

cal.add(3);

cal.substract(3);

assertEquals(0, cal.getResult());//错误在于方法上

}

@Ignore("Multiply() Not yet implemented")

@Testpublic voidtestMultiply() {

fail("Not yet implemented");

}

@Test(expected= ArithmeticException.class)public voiddivideByZero(){

cal.divide(0);

}

@Testpublic voidtestDivide() {

cal.add(5);

cal.divide(1);

assertEquals(5,cal.getResult());//正确

}

@Test(timeout= 1000)public voidtestSquareRoot() {

cal.squareRoot(4);

assertEquals(2,cal.getResult());

}

}

View Code

我们来静静分析一下代码:

assertEquals(a,b); //a是期望值,a 和 b会做一个对比,不一样的话会出现报错

310304fb297f5af42b32fd78dc516d73.png

这个就是期望的与结果不同的报错。

右上角是说 两个测试失败,通过3个,1个测试被忽略。

限时测试

对于那些逻辑很复杂,循环嵌套比较深的程序,很有可能出现死循环,因此一定要采取一些预防措施。限时测试是一个很好的解决方案。我们给这些测试函数设定一个执行时间,超过了这个时间,他们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。要实现这一功能,只需要给@Test标注加一个参数即可:@Test(timeout=1000)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值