单元测试JUnit
JUnit是Java单元测试的主要工具
开发,测试和构建流程自动化
测试:软件测试的经典定义:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件测试分类:
–单元 vs 集成测试
–白盒 vs 黑盒测试
–自动 vs 手动测试
–回归测试
–压力测试
单元和集成测试:
● 单元测试:是指对软件中的最小可测试单元进行检查和验证。通常是一个函数/方法。
单元测试时已知代码结构进行的测试,属于白盒测试;
● 集成测试是将多个单元相互作用,形成一个整体,对整体协调性进行测试;
一般从构成系统的最小单元开始,持续推进到单元之间的接口直到集成成为一个完成的软件系统为止。
白盒和黑盒测试
● 白盒测试(white-box testing),全面了解程序内部逻辑结构,对所有的逻辑路径都进行测试。
一般由程序员完成。
● 黑盒测试(black-box testing),又名功能测试,将程序视为一个不能打开的黑盒子。
在完全不考虑程序内部结构和内部特性的情况下,检查程序功能是否按照需求规格说明书的规定正常使用。
一般由独立的使用者完成。
自动和手动测试
● 自动测试:用程序批量、反复测试程序,并可自动检查程序结果是否满足预定的要求。
● 手动测试:手动执行程序,手动输入所需要的参数,手动检查程序结果是否满足预定的要求。
回归测试
● 回归测试:修改旧代码后,重新进行测试以确认修改没有
引入新的错误或导致其他代码产生错误。
● 回归测试在整个软件测试过程中占有很大的比重。软件快速迭代开发过程中,
新版本的连续发布(Daily/Nightly Build)使得回归测试进行的更加频繁。
修改代码比重新写代码更难。因为修改代码必须是在理解旧代码的基础之.上,增加新的代码。
新的代码必须和旧代码兼容,不能引入新的错误或导致其他的代码连锁错误。
JUnit使用
去maven仓库拷贝JUnit依赖文本粘贴到pom.xml中(上一篇博客中有说明)
每一个测试方法的头部加@Test(注解),这样JUnit会自动执行这些测试方法
JUnit执行测试
test目录中新建test类,加@Test(注解)
右键该test类,Run as–>JUnit Test
完成测试,弹出测试视图
通过maven执行测试:
Run as–>8 Maven test
JUnitTest一次只能执行一个Test类,maven可以一次执行多个Test类
断言
public boolean judgeEdges (int a, int b, int c){
boolean result = true ;
if(a<=0 || b<=0 || c<=0) {
return false;//丙辺和大于第三辺;
}
if (a+b<=c) {
result = false;
}
if(b+c<=a) {
result = false;
}
if (c+a<=b) {
result = false ;
}
return result;
}
TriangeTest.java
import static org. junit.Assert.*; //导 入Assert类的所有静态方法,自JDK1.5引入 .
public class TriangleTest {
@Test
public void test() {
assertEquals(true, new Triang1e() . judgeEdges(1,2,3));
//Assert.assertEquals(false, new Triangle() . judgeEdges(1,2,3));
}
}