如何使用 JUnit5 对同一测试用例的不同方法进行测试?
如何通过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 <p>上面的代码中,每个测试方法都有自己的testdata。这将导致每次测试使用不同的测试数据。</p><p><strong>解决方案:</strong></p><p>要使用同一测试数据对多个方法进行测试,请使用@beforeeach注解。这个注解在每个测试方法之前运行,因此您可以利用它来生成测试数据并将其存储在该方法中使用。</p><p>修改后的代码如下:</p>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 <p>在修改后的代码中,@beforeeach注解使用init_all()方法在每个测试方法之前生成测试数据。然后,每个测试方法都可以访问testdata变量并使用它。</p><p>此外,还可以使用@testinstance(testinstance.lifecycle.per_class)注解,这样就可以在测试类中初始化测试数据,并且可以使用this.testdata来访问它。</p>
以上就是如何使用 JUnit5 对同一测试用例的不同方法进行测试?的详细内容,更多请关注www.sxiaw.com其它相关文章!