有没有办法让@MethodSource自变量参数派生自另一个方法

时间:2019-10-16 00:01:57

标签: junit5 parameterized

我有一个Junit 5非静态参数化测试,使用@MethodSource来获取测试数据。

Method Source参数正在从其他方法获取数据,如下代码。我通过设置
使@MethodSource成为非静态 @TestInstance(TestInstance.Lifecycle.PER_CLASS)

@MethodSource中的fullDomain参数是从registrationPage中的getFullDomain()方法派生的,该方法也是非静态的。我@@@@@@@@@@@@@@@@@@@@@@@

当我运行测试时,fullDomain返回null。有没有一种方法可以解决此问题,或者我可以使用@ArgumentSource之类的其他任何工具修复此问题。

我需要从不同的类及其方法中获取Arguments.of(“ Successful Regisration”,fullDomain)数据。

基础测试:

public class BaseTest {
@Autowired
protected RegistrationPage registrationPage;
}    

测试类:

@TestInstance(TestInstance.Lifecycle.PER_CLASS)
public class Junit5SampleTest extends BaseTest {

String fullDomain = registrationPage.getFullDomain();

Stream<Arguments> registrationInputParameters() {
     return Stream.of(
             Arguments.of("Successful Regisration", fullDomain)        
 }

@ParameterizedTest()
@MethodSource("registrationInputParameters")
public  void junit5(String testName, String fullDomain){
System.out.println(testName);
open(fullDomain);
}
}

0 个答案:

没有答案