Eclipse中怎么使用junit测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse中怎么使用junit测试相关的知识,希望对你有一定的参考价值。
参考技术A 首先新建一个项目叫JUnit_Test,我们编写一个Calculator类,这是一个能够简单实现加减乘除、平方、开方的计算器类,然后对这些功能进行单元测试。这个类并不是很完美,我们故意保留了一些Bug用于演示,这些Bug在注释中都有说明。该类代码如下:package andycpp;
public class Calculator
private static int result; // 静态变量,用于存储运行结果
public void add(int n)
result = result + n;
public void substract(int n)
result = result - 1; //Bug: 正确的应该是 result =result-n
public void multiply(int n)
// 此方法尚未写好
public void divide(int n)
result = result / n;
public void square(int n)
result = n * n;
public void squareRoot(int n)
for (; ;) ; //Bug : 死循环
public void clear() // 将结果清零
result = 0;
public int getResult()
return result;
第二步,将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”
在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮
然后在新弹出的对话框中选择JUnit4并点击确定,如上,JUnit4软件包就被包含进我们这个项目了。
第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”
在弹出的对话框中,进行相应的选择
点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。
之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:
package andycpp;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
public class CalculatorTest
private static Calculator calculator = new Calculator();
@Before
public void setUp() throws Exception
calculator.clear();
@Test
public void testAdd()
calculator.add(2);
calculator.add(3);
assertEquals(5, calculator.getResult());
@Test
public void testSubstract()
calculator.add(10);
calculator.substract(2);
assertEquals(8, calculator.getResult());
@Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply()
@Test
public void testDivide()
calculator.add(8);
calculator.divide(2);
assertEquals(4, calculator.getResult());
第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试
进度条是红颜色表示发现错误,具体的测试结果在进度条上面有表示“共进行了4个测试,其中1个测试被忽略,一个测试失败”
如何使用 junit 5 为 Eclipse 编写测试套件?
【中文标题】如何使用 junit 5 为 Eclipse 编写测试套件?【英文标题】:How to write a test suite with junit 5 for eclipse? 【发布时间】:2021-05-07 09:04:10 【问题描述】:我正在尝试通过测试套件中的 junit5 测试运行。但是我得到一个错误
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.runner.RunWith;
import com.test.studentservice.controllers.StudentControllerTest2;
import com.test.studentservice.repo.StudentServiceRepoDataTest;
import com.test.studentservice.service.StudentServiceTest;
@RunWith(JUnitPlatform.class)
@SelectClasses(StudentControllerTest2.class, StudentServiceRepoDataTest.class, StudentServiceTest.class)
public class StudentServiceTestSuite
这是我得到的错误:
谢谢
【问题讨论】:
JUnit5 中的一个常见错误是使用org.junit.Test
而不是org.junit.jupiter.api.Test
标记测试方法。您可以右键单击一个包并选择Run As > JUnit Test,这样您就无需编写代码来列出一个包的所有测试类。如果这没有帮助,请告诉您是否可以将类作为 JUnit 测试运行并显示一个包含测试类代码的最小示例。
@howlger 谢谢,右键单击包并运行 jUnit 测试工作正常。但是我需要根据要求有一个测试套件。我已经重新检查并在每次测试中使用org.junit.jupiter.api.Test
。我正在关注baeldung.com/junit-5 测试套件示例
【参考方案1】:
您收到此错误,因为在 Test 选项卡中的 JUnit 启动配置(Run > Run Configurations...)中,您选择 Test runner 选项 JUnit 5 而不是 JUnit 4。 p>
@RunWith(JUnitPlatform.class)
用于将 JUnit 5 测试作为 JUnit 4 测试运行,以防工具仅支持 JUnit 4 但不支持 JUnit 5 (@987654321 @)。但是您不需要它,因为 Eclipse 支持 JUnit 5,并且不应该使用它,因为通过 JUnit 4 API 运行它有一些限制。
Baeldung - A Guide to JUnit 5 - 7. Test Suites 其中you mentioned in a comment you are following here 是错误的,或者至少在这一点上具有误导性。代替 JUnit 测试套件类,标记您的测试并使用它们来包含或排除测试(在 JUnit 启动配置中,在 Test 选项卡中,点击 Configure... em> 按钮)。
【讨论】:
【参考方案2】:从 2021 年 10 月到 11 月 jUnit5 支持@Suite 注释:
import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.Suite;
import org.junit.platform.suite.api.SuiteDisplayName;
@Suite
@SuiteDisplayName("Build Verification Test")
// Insert the class names in the order of execution
@SelectClasses(
FirstTest.class,
SecondTest.class
)
public class SuiteTest
波姆:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<junit.jupiter.version>5.8.0</junit.jupiter.version>
<junit.platform.version>1.8.0</junit.platform.version>
</properties>
...
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite</artifactId>
<version>$junit.platform.version</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite-api</artifactId>
<version>$junit.platform.version</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite-commons</artifactId>
<version>$junit.platform.version</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-suite-engine</artifactId>
<version>$junit.platform.version</version>
<scope>test</scope>
</dependency>
...
【讨论】:
以上是关于Eclipse中怎么使用junit测试的主要内容,如果未能解决你的问题,请参考以下文章