Junit单元测试
来源:互联网 发布:dota2战绩查询软件 编辑:程序博客网 时间:2024/06/06 01:13
Maven创建的工程结构说明:
1)src/main/java:存放JAVA代码
2)src/main/resources:存放JAVA的资源文件
3)src/test/java:存放测试的JAVA代码
4)src/test/resources:存放测试JAVA代码需要用到的资源文件
pom.xml中增加:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
单元测试:
1、通过继承类TestCase,测试方法必须以test开头来命名
如:
public class Test extends TestCase {
public void test1(){
System.out.println("单元测试一");
}
public void test2(){
System.out.println("单元测试二");
}
}
注意:这种方法中写的所有的方法都必须是以test开头,例如:testXXXX
执行上面的代码后会在左边显示出这两个测试方法是否执行成功,绿色代表执行成功,红色代表执行失败,且test1跟test2方法上面的会显示X。
2、需要在测试方法前面加入注解,而注解的类型分别如下:
@Test:表明这是一个测试方法
@Before:每执行一个测试方法前都会先执行被标注了此注解的方法
@After:每执行一个测试方法后都会先执行被标注了此注解的方法
@BeforeClass:测试用例初始化时执行被@BeforeClass标注的方法,只会执行一次
@AfterClass:当所有测试执行完毕之后,执行进行收尾工作,也就是执行被@AfterClass标注的方法,只会执行一次
注意:
此时方法名可以随便写,不用一定要写成testXXX了。
@BeforeClass与@AfterClass所标注的测试方法要定义成static类型才能被执行
如:
public class Demo2 {
@BeforeClass
public static void method5() {
System.out.println("Demo2.method5()");
}
@Before
public void method3() {
System.out.println("Demo2.method3()");
}
@Test
public void method1() {
System.out.println("Demo2.method1()");
}
@Test
public void method2() {
System.out.println("Demo2.method2()");
}
@After
public void method4() {
System.out.println("Demo2.method4()");
}
@AfterClass
public static void method6() {
System.out.println("Demo2.method6()");
}
}
执行结果为:
Demo2.method5()
Demo2.method3()
Demo2.method1()
Demo2.method4()
Demo2.method3()
Demo2.method2()
Demo2.method4()
Demo2.method6()
3、断言(Assert)
单元测试必须要用到断言,被用来检查非法情况而不是错误情况,即在该程序正常工作时绝不应该发生的非法情况,用来帮助开发人员对问题的快速定位。
常用的API如下:
assertEquals(a,b):判断两个数据是否一致
assertNotEquals(a,b):判断两个数据是否不一致;
assertNull(object):查看对象是否为空
assertNotNull(object):查看对象是否不为空;
assertTrue(...):判断当前运行结果是否为真;
assertFalse(...):判断当前运行结果是否为假;
如:
public class Demo3 {
@Test
public void equals(){
assertEquals(2,2);
}
@Test
public void unequals(){
assertNotEquals(1,2);
}
}
断言与异常的区别
断言用在那些你知道绝对不会发生的事情上,但是因为人总是会犯错误,保不准你写出来的东西跟你想的不一样。所以assert用来捕捉的是程序员自己的错误。
但异常(exception)主要用于捕捉的是用户或者环境的错误。
4、打包类测试
介绍:
打包类测试,是把所有的测试类打包在一起测试,即在测试方法前引入所有的测试类即可。
优点:
可以一次性的测试所有的方法,而不用一个一个的去跑了。
如:
@RunWith(Suite.class)
@SuiteClasses({Demo1.class,Demo2.class,Demo3.class})
public class JunitTestAll {
}
0 0
- JUnit单元测试
- JUnit 单元测试
- 单元测试JUnit
- Junit单元测试
- Junit单元测试
- junit单元测试
- JUnit单元测试
- Junit单元测试
- JUnit单元测试
- junit单元测试
- Junit单元测试
- Junit 单元测试
- Junit单元测试
- JUnit单元测试
- JUnit单元测试
- jUnit 单元测试
- Junit单元测试
- junit 单元测试
- TCP和1448
- 同步异步与阻塞与非阻塞
- DP思路解算法题
- Q88:全局光照(Global Illumination)——Path Tracing算法生成反射焦散效果的图形
- 静态变量-动态变量
- Junit单元测试
- 【方法】机器学习中的数据清洗与特征处理
- React学习之State与生命周期基友情(四)
- Java之按行、列读excel笔记
- Sqoop学习笔记 --- python保存 Sqoop 打印的信息
- ruby on rails 撤销取消操作
- 数据库关系运算
- 在MFC中手动添加消息处理函数PreTranslateMessage
- 斐波纳契数列