- 软件测试分类
- 黑盒测试:不需要考虑程序内部是如何实现的,只是测试程序说明书上所说的功能是否都实现了。
- 白盒测试:知道程序内部是如何实现的,通过程序内部的具体实现逻辑来设计测试用例,测试程序在各种极端情况下是否正常运行。(JUnit属于白盒测试)
- JUnit的使用
- 步骤
-
定义一个测试类(测试用例)
- 建议: - 测试类的类名:被测试类的类名+Test,如CalculatorTest - 测试类所在的包名:公司域名倒置.test,如com.alibaba.test
-
定义测试方法(和普通的实例方法没什么区别)
- 建议: - 方法名:test+被测试的方法的方法名,如testPlus() - 返回值:void - 参数列表:没有参数
-
给方法加@Test
-
导入JUnit依赖环境
- 判定结果
- 绿色:测试成功
- 红色:测试失败
- 使用断言来判定程序的运行结果符不符合我们的期望
- 补充
- @Before修饰的方法会在测试方法执行之前先被执行,一般用于资源的申请
- @After修饰的方法会在测试方法执行之后被执行,一般用于资源的释放
- 最后放上代码案例
package com.dwb.junitstudy;
public class Calculator {
public int plus(int a, int b) {
// return a + b;
return a - b;
}
public int sub(int a, int b) {
return a - b;
}
}
package com.dwb.junitstudy.test;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
// 初始化方法:用于资源申请,所有的测试方法执行之前都会先执行该方法
@Before
public void init() {
System.out.println("init...");
}
// 释放资源方法:所有测试方法执行完毕后,都会自动执行该方法
@After
public void close() {
System.out.println("close...");
}
// JUnit测试方法
@Test
public void testPlus() {
Calculator calculator = new Calculator();
int result = calculator.plus(3, 1);
Assert.assertEquals(4, result);
}
@Test
public void testSub() {
Calculator calculator = new Calculator();
int result = calculator.sub(3, 1);
Assert.assertEquals(2, result);
}
}