java @Test 使用不了

报错:
在这里插入图片描述
在这里插入图片描述

只需要将上面那个依赖改为如下即可

<dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.6.2</version>

</dependency>

Junit 5 = Junit Platform + Junit Jupiter + Junit Vintage (可以这么说junit5就是junit-jupiter)
Junit Platform: Junit Platform是在JVM上启动测试框架的基础,不仅支持Junit自制的测试引擎,其他测试引擎也都可以接入。
Junit Jupiter: Junit Jupiter提供了JUnit5的新的编程模型,是JUnit5新特性的核心。内部包含了一个测试引擎,用于在Junit Platform上运行。
Junit Vintage: 由于JUnit已经发展多年,为了照顾老的项目,JUnit Vintage提供了兼容JUnit4.x,Junit3.x的测试引擎。

<think>好的,我现在需要回答用户关于Java使用@Test注解的问题。首先,用户提到他们是一个编程专家,所以我的回答需要专业且详细。用户希望得到解决方案,包括代码示例和解释,代码要用Markdown格式。然后还需要提出相关问题,最后按照指定格式输出。 首先,我得确定用户具体的问题是什么。用户可能是在问如何在Java使用JUnit的@Test注解来编写单元测试。可能的疑问包括如何导入JUnit,如何编写测试方法,断言的使用,或者测试异常等情况。接下来,我需要准备一个示例代码,展示@Test的基本用法。比如,编写一个简单的测试类,包含几个测试方法,使用不同的断言,如assertEquals、assertTrue,还有测试异常的情况。同时要确保代码正确,比如导入正确的JUnit包,使用合适的测试结构。 然后,解释代码的各个部分。比如,说明@Test注解的作用,测试类的命名习惯,测试方法的编写规范,断言方法的功能,以及如何测试预期的异常。还要提到JUnit的版本,比如JUnit4和5的区别,因为@Test的包路径不同。在示例中使用的是JUnit4,所以需要指出如果使用JUnit5的话需要换成org.junit.jupiter.api.Test。 之后,考虑用户可能遇到的问题,比如如何设置测试依赖,如何运行测试,或者更复杂的测试场景。在解释部分需要涵盖这些点,确保用户能够理解并应用示例代码。 最后,根据用户的提问模式,我需要生成四个相关问题。这些问题应该围绕JUnit和@Test注解的更深层次应用,比如不同断言的使用、测试前后处理、参数化测试、JUnit4和5的区别等。确保问题具有相关性,能够帮助用户进一步学习。总结步骤: 1. 编写一个使用JUnit4的@Test注解的测试类示例。 2.在代码中包含基本断言和异常测试。 3.详细解释代码中的每个部分,包括导入、注解、断言方法。 4. 提到JUnit版本差异。5. 提出相关问题,覆盖测试的其他方面和高级用法。 检查是否有遗漏,比如测试前的初始化方法(@Before)、测试套件等,但根据用户的问题,可能不需要深入这些内容,但相关问题可以提到。确保回答清晰,代码正确,解释到位,问题相关。</think>使用JUnit框架的@Test注解实现单元测试Java代码示例: ```java import org.junit.Test; import static org.junit.Assert.*; public class CalculatorTest { @Test public void testAddition() { Calculator calc = new Calculator(); assertEquals(5, calc.add(2, 3)); assertNotEquals(10, calc.add(2, 3)); } @Test public void testDivision() { Calculator calc = new Calculator(); assertEquals(2.5, calc.divide(5, 2), 0.001); } @Test(expected = ArithmeticException.class) public void testDivisionByZero() { Calculator calc = new Calculator(); calc.divide(5, 0); } @Test public void testBooleanCondition() { Calculator calc = new Calculator(); assertTrue(calc.isPositive(10)); assertFalse(calc.isPositive(-5)); } } class Calculator { public int add(int a, int b) { return a + b; } public double divide(int a, int b) { if (b == 0) { throw new ArithmeticException("Division by zero"); } return (double) a / b; } public boolean isPositive(int num) { return num > 0; } } ``` 代码解释: 1. `@Test`注解标记的方法会被JUnit识别为测试用例 2. `assertEquals`用于验证预期值和实际值是否相等 3. `assertTrue`/`assertFalse`用于验证布尔条件 4. `expected`参数用于验证是否抛出指定异常 5. 浮点数比较需要使用delta参数处理精度问题 6. 测试类和方法需要声明为public 注意事项: - 需要JUnit 4.12+依赖 - 测试类建议以Test结尾命名 - 每个测试方法应该是独立的 - 使用IDE或构建工具(Maven/Gradle)运行测试
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值