junit单元测试快速入门
目录
1.新建java工程 JunitDemo001,并添加文件 Calc.java
软件测试按照阶段可以分为单元测试、集成测试、系统测试和验收测试。
单元测试中的单元指的是函数,即要对软件系统的最小组成单元的函数进行测试,验证其是否符合详细规格说明的要求。出于产品质量要求和投入产出等诸多方面的考虑,大多数软件系统只进行系统测试,不进行单元测试。但是当当一个系统的质量要求较高时,往往需要进行单元测试。
单元测试通常需要有代码经验的专业人员完成,采用单元测试工具可以大大提高测试效率。
JUnit 是一个广泛使用的 Java 语言的单元测试框架。无论是开发还是一名测试人员,掌握junit都很有意义。
一。在eclipse中打开或新建被测项目工程
为了便于大家学习,减少由于代码不同而产生的差异,下面大家跟随我创建一个简单的java工程,作为被测代码。
1.新建java工程 JunitDemo001,并添加文件 Calc.java
2.为类文件添加代码
代码替换为如下信息:
package nfu.com; //如果上个界面没有指定包名,则此处可以去掉
public class Calc {
int add(int a,int b)
{
int c ;
c= a+b;
return c;
}
int substract(int a,int b)
{
int c ;
c= a-b;
return c;
}
int mulitple(int a,int b)
{
int c ;
c= a*b;
return c;
}
int divid(int a,int b)
{
int c ;
if(b == 0)
{
throw new ArithmeticException("fengmu can not be 0");
}
c= a/b;
return c;
}
public static void main(String[] args)
{
Calc c = new Calc();
System.out.print("c.add(3,4) = "+ c.add(3,4));
}
}
如果代码运行可以正常输出结果,则代码正常,就可以开始进行单元测试了!
二。使用junit创建单元测试用例
1:选定待测java源代码文件,点击右键菜单 new -> other -> Junit test case
本次测试的仅有一个被测文件,且只有一个被测类,所以就不用创建测试套件了,我们直接创建测试用例即可
三。完善和增加用例
根据需要修改和添加单元测试用例。
@Test
void testAdd01() {
Calc c = new Calc();
assertEquals(6, c.add(2,4)); //验函数c.add(2,4)的值是否为6
}
@Test
void testAdd02() {
Calc c = new Calc();
assertEquals(-6, c.add(-2,-4)); //验函数c.add(-2,-4)的值是否为-6
@Test是junit的注解,表明该方法未单元测试用例。
软件测试是通过检测实际值与预期值来验证软件是否符合需求、
单元测试时,我们会检测函数的返回值是否与预期结果一致,junit框架提供了大量的断言函数,帮助我们进行实际结果和预期结果的比较。
如下所示
四、运行单元测试用例
点击工具跳上的 运行按钮(绿色三角)即可运行测试用例,
结果如下图所示,
junit视图打开,上方是执行的汇总情况,总共执行多少个用例,出错多少,失败多少。
下方的树上显示了各个测试用例执行情况,绿色表示执行通过,蓝色表示失败,红色表示出错。
至此,你已经顺利完成了测试用例的编写与执行,是不是很开心 :)
根据需要你可以增加更多的用例,以达到更高的覆盖率,对代码进行充分测试,
junit 补充知识:
1.junit注解
junit5的详细注解说明见:junit官网的注解介绍链接
除了@Test注解,你还可以使用@Before @After等注解
2.junit断言
junit5的各种断言方法参见 junit官网断言函数说明
3.junit'测试用例执行结果的查看
关于测试用例执行结果的查看。可以通过用例图标颜色了解用例执行是否通过。也可以选中相应的用例,在“faliure trace”窗口查看用例失败的原因
4.测试覆盖率的监控
单元测试通常以覆盖率作为测试要求,使用一些工具可以有效的帮助我们了解测试用例的覆盖情况
具体 可以参看 EclEmma 覆盖率插件的安装和使用
5.junit的异常处理
方法一:判定用例执行是否出现指定的异常,具体位置不要求
@Test注解允许带有参数 expected,该参数可以指定用例执行预期出现的异常
方法二:判定用例执行是否在指定位置出现异常,并且可以对异常的属性进行判断
相关文章
- Spring学习笔记(三)——Spring注解开发&spring与Junit整合测试
- java断言assertequals_junit 方法:assertEquals 和 assertTrue
- Junit单元测试教程_单元测试调试react源码
- 大数据必学Java基础(八十三):Junit单元测试
- Junit测试代码怎么写
- junit 单元测试报错:java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
- Caused by: java.lang.IllegalStateException: SpringJUnit4ClassRunner requires JUnit 4.12 or higher.
- ChatGPT教你Junit自动化测试框架
- [android] android下junit测试框架配置详解手机开发