我有一个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);
}
}