我有一个测试类,它由带有一些参数的 @Before 方法和其他测试方法组成。
@Before
@ParameterizedTest
@ValueSource(strings = {"123", "456"})
public void createData(String userId) {
someMethod(userId)
}
@ParameterizedTest
@ValueSource(strings = {"123", "456"})
public void abc(String userId) {}
但它一直先执行 abc() 并抛出错误
org.junit.jupiter.api.extension.ParameterResolutionException: No ParameterResolver registered for parameter [java.lang.String arg0] in method [public void tests.xxx.createData(java.lang.String) throws java.io.IOException].
我对 JUnit 参数很陌生。Before 方法可以同时是 ParametrizedTest 吗?如果没有此注释 [ParametrizedTests],它似乎无法按预期工作,但另一方面,我需要在所有其他方法之前执行它。可能是什么问题以及解决方案是什么?