
如何通过junit5,对同一测试样例的不同方法进行测试?
通常使用junit5测试时,每个测试方法使用不同的测试数据。但有时我们需要使用同一测试数据对多个方法进行测试,下面介绍如何实现:
问题代码:
以下是问题的代码示例:
import org.junit.jupiter.api.*;public class sort_test3 { private final int[] testdata = init_all(); int[] init_all(){ final int[] testdata; system.out.println("before run..."); // 随机生成测试数据 int n = (int) (math.random() * 1000); system.out.println(n); testdata = new int[n]; for (int i = 0; i < n; i++) { testdata[i] = (int) (math.random() * 1000); } return testdata; } @beforeall void print(){ system.out.println(); system.out.println("--------------程序运行结束--------------"); } // 使用不同测试数据 @test //冒泡排序 public void test_mpsort() { for (int i:testdata) { system.out.println(i); } int[] mp = mysortalgorithm_main.mp_sort(testdata); system.out.println("冒泡排序结果:"); } // 使用不同测试数据 @test // 选择排序 void test_chosesort() { for (int i:testdata) { system.out.println(i); } int[] cos = mysortalgorithm_main.chose_sort(testdata); system.out.println("选择排序结果:"); }}
上面的代码中,每个测试方法都有自己的testdata。这将导致每次测试使用不同的测试数据。
解决方案:
maven使用方法 中文WORD版
本文档主要讲述的是maven使用方法;Maven是基于项目对象模型的(pom),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven将你的注意力从昨夜基层转移到项目管理层。Maven项目已经能够知道 如何构建和捆绑代码,运行测试,生成文档并宿主项目网页。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
0 查看详情
要使用同一测试数据对多个方法进行测试,请使用@beforeeach注解。这个注解在每个测试方法之前运行,因此您可以利用它来生成测试数据并将其存储在该方法中使用。
修改后的代码如下:
import org.junit.jupiter.api.*;public class Sort_Test3 { private int[] testData; @BeforeEach void init_All(){ final int[] testData; System.out.println("before run..."); // 随机生成测试数据 int n = (int) (Math.random() * 1000); System.out.println(n); testData = new int[n]; for (int i = 0; i < n; i++) { testData[i] = (int) (Math.random() * 1000); } this.testData = testData; } @BeforeAll void print(){ System.out.println(); System.out.println("--------------程序运行结束--------------"); } // 使用相同测试数据 @Test //冒泡排序 public void test_mpSort() { for (int i:testData) { System.out.println(i); } int[] mp = MySortAlgorithm_Main.mp_sort(testData); System.out.println("冒泡排序结果:"); } // 使用相同测试数据 @Test // 选择排序 void test_choseSort() { for (int i:testData) { System.out.println(i); } int[] cos = MySortAlgorithm_Main.chose_sort(testData); System.out.println("选择排序结果:"); }}
在修改后的代码中,@beforeeach注解使用init_all()方法在每个测试方法之前生成测试数据。然后,每个测试方法都可以访问testdata变量并使用它。
此外,还可以使用@testinstance(testinstance.lifecycle.per_class)注解,这样就可以在测试类中初始化测试数据,并且可以使用this.testdata来访问它。
以上就是如何使用 JUnit5 对同一测试用例的不同方法进行测试?的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/810204.html
微信扫一扫
支付宝扫一扫