Junit实训进阶篇

1478 篇文章

已下架不支持订阅

这篇博客详细介绍了Junit的高级用法,包括参数化测试、异常测试、套件测试以及如何在命令行下运行Junit测试,旨在提升学员的测试技能。

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

第1关:Junit参数化测试

根据所学内容,要求用户补全Junit的参数化测试代码。

package step1;

import static org.junit.Assert.assertEquals; //静态导入
import java.util.Arrays;
import java.util.Collection;
import org.

已下架不支持订阅

### JUnit 实训进阶教程及相关资料 JUnit 是 Java 开发中的重要单元测试框架之一,其功能强大且灵活。以下是关于 JUnit 高级特性的详细介绍以及如何应用这些特性。 #### 命令行下的 JUnit 测试 在命令行环境下运行 JUnit 测试时,需要先完成源文件的编译工作,并指定目标目录用于存储生成的 `.class` 文件。具体操作如下所示[^1]: ```bash javac -d . Calculate.java javac -d . CalculateTest.java java org.junit.runner.JUnitCore com.trustie.test.CalculateTest ``` 上述命令分别完成了 `Calculate.java` 和 `CalculateTest.java` 的编译过程,并通过 `org.junit.runner.JUnitCore` 类启动了测试案例集的执行流程。 #### 参数化测试 为了提高测试效率并减少重复代码量,在某些场景下可以利用 **参数化测试** 功能实现多组数据输入验证逻辑的一次性定义。这通常依赖于 `@RunWith(Parameterized.class)` 注解及其配套方法的支持[^2]: 下面是一个简单的例子展示如何设置一组整数加法运算作为测试条件: ```java import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.util.Arrays; import java.util.Collection; @RunWith(Parameterized.class) public class AddNumbersTest { private final int numA; private final int numB; private final int expectedSum; public AddNumbersTest(int a, int b, int sum){ this.numA = a; this.numB = b; this.expectedSum = sum; } @Parameterized.Parameters public static Collection<Object[]> data(){ return Arrays.asList(new Object[][]{ {1, 1, 2}, {2, 3, 5} }); } @Test public void testAddition(){ Calculator calc = new Calculator(); assertEquals(expectedSum, calc.add(numA, numB)); } } ``` 此段程序展示了如何创建一个接受多个参数实例化的测试类,并通过静态工厂方法提供不同的测试用例集合给定每一轮迭代使用的变量值组合。 #### 异常处理测试 对于预期会抛出特定类型异常的方法调用,则可以通过声明属性的方式告知框架关注此类行为的发生情况。例如以下片段演示了一个除零错误情形下的断言方式[^3]: ```java @Test(expected = ArithmeticException.class) public void divisionWithException() { int i = 1 / 0; // This will throw an exception. } ``` 这里我们期望函数内部触发算术溢出从而引发相应类型的例外事件;如果实际运行过程中未发生任何问题或者产生了其他种类的意外状况都会导致当前测试失败。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ssaty.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值