【白盒测试】Junit测试(一)

本文详细介绍JUnit测试框架的使用,包括如何在项目中导入JUnit,Assert类的主要方法,JUnit中的常用注解,以及一个简单的测试用例示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 JUnit导包

JUnit是Java最基础的测试框架,主要的作用就是断言。

使用时需要在app的build.gradle文件里添加依赖,如下所示:

testImplementation "junit:junit:4.12"

使用testImplementation导入的包,则写的测试用例需要放在test里面,如下所示
1565874482639.png

使用androidTestImplementation导入的包,则写的测试用例需要放在androidTest里面。

2 Assert类中主要方法

方法名方法描述
assertEquals断言传入的预期值与实际值是相等的
assertNotEquals断言传入的预期值与实际值是不相等的
assertArrayEquals断言传入的预期数组与实际数组是相等的
assertNull断言传入的对象是为空
assertNotNull断言传入的对象是不为空
assertTrue断言条件为真
assertFalse断言条件为假
assertSame断言两个对象引用同一个对象,相当于“==”
assertNotSame断言两个对象引用不同的对象,相当于“!=”
assertThat断言实际值是否满足指定的条件

注意:上面的每一个方法,都有对应的重载方法,可以在前面加一个String类型的参数,表示如果断言失败时的提示。

3 JUnit 中的常用注解

注解名含义
@Test表示此方法为测试方法
@Before在每个测试方法前执行,可做初始化操作
@After在每个测试方法后执行,可做释放资源操作
@Ignore忽略的测试方法
@BeforeClass在类中所有方法前运行。此注解修饰的方法必须是static void
@AfterClass在类中最后运行。此注解修饰的方法必须是static void
@RunWith指定该测试类使用某个运行器
@Parameters指定测试类的测试数据集合
@Rule重新制定测试类中方法的行为
@FixMethodOrder指定测试类中方法的执行顺序

4 JUnit简单使用示例

在目录main/java/XXX/XXX下编写一个计算的类Calculater,该类有个add方法,代码如下:

package com.yds.mainmodule.fragment;

/**
 * Created by yds
 * on 2019/8/15.
 */
public class Calculater {
    public int add(int a,int b){
        return a+b;
    }
}

然后在test/java/XXX/XXX目录下编写一个测试用例,代码如下:

package com.example.mainmodule;

import com.yds.mainmodule.fragment.Calculater;

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

/**
 * Created by yds
 * on 2019/8/15.
 */
public class CalculaterTest {
    private Calculater calculater;
    private int a = 3;
    private int b = 4;
    private int sum = 7;
    @Before
    public void setUp(){
        calculater = new Calculater();
    }
    @Test
    public void testAdd(){
        Assert.assertNotNull(calculater);
        int result = calculater.add(a,b);
        Assert.assertEquals(sum,result);
    }
    @After
    public void tearDown(){
        calculater = null;
    }
}

结果与预期相等,用例通过。

### 如何使用JUnit 5进行Java的白盒测试 #### JUnit 5简介 JUnit种流行的 Java 测试框架,用于执行单元测试JUnit 的最新版本是 JUnit 5[^3],它提供了更强大的功能和更好的扩展性。 #### 创建JUnit 5测试环境 为了使用 JUnit 5 进行测试,首先需要配置开发环境。大多数现代 IDE(如 Eclipse 和 IntelliJ IDEA)已经内置支持 JUnit 5。如果未集成,则可以通过 Maven 或 Gradle 添加依赖项来引入 JUnit 5。 以下是通过 Maven 配置 JUnit 5 的示例: ```xml <dependencies> <!-- JUnit Jupiter API and Engine --> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter-engine</artifactId> <version>5.9.0</version> <scope>test</scope> </dependency> <!-- Additional dependencies can be added here --> </dependencies> ``` 对于 Gradle 用户,可以在 `build.gradle` 文件中添加以下内容: ```gradle dependencies { testImplementation 'org.junit.jupiter:junit-jupiter:5.9.0' } ``` #### 编写JUnit 5测试案例 下面是一个简单的例子,展示如何使用 JUnit 5 对一个方法进行白盒测试: 假设有一个名为 `Calculator.java` 的类,其中包含加法函数: ```java public class Calculator { public int add(int a, int b) { return a + b; } } ``` 接下来创建对应的测试类 `CalculatorTest.java`,并编写测试用例: ```java import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class CalculatorTest { @Test void testAdd() { Calculator calculator = new Calculator(); int result = calculator.add(2, 3); assertEquals(5, result); // 断言结果是否等于预期值 } @Test void testNegativeNumbers() { Calculator calculator = new Calculator(); int result = calculator.add(-1, -4); assertEquals(-5, result); // 测试负数相加的情况 } } ``` 上述代码展示了两个测试方法: - `testAdd()` 方法验证正常情况下的加法操作。 - `testNegativeNumbers()` 方法则针对特殊场景——即负数相加的结果进行了断言。 #### 执行JUnit 5测试 在 IDE 中可以直接运行这些测试用例。通常情况下,只需右键点击测试类或单个测试方法,并选择“Run As -> JUnit Test”。测试完成后会显示成功与否的状态以及任何失败的具体原因。 另外,在命令行下也可以借助构建工具(Maven/Gradle)运行测试。例如,使用 Maven 可以运行以下命令: ```bash mvn test ``` 或者使用 Gradle: ```bash gradle test ``` #### 注意事项 当使用 JUnit 5 时需要注意些细节,比如确保正确导入所需的库版本,并且熟悉其新的注解方式(如 `@BeforeEach`, `@AfterEach`, `@BeforeAll`, `@AfterAll` 等)。此外,建议阅读官方文档获取更多高级特性说明[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值