java – 在参数化测试类中排除非参数测试
作者:互联网
JUnit中是否有任何注释可以在参数化测试类中排除非参数测试?
解决方法:
JUnit 5
从Junit 5.0.0开始,您现在可以使用@ParameterizedTest注释您的测试方法.所以不需要内部课程.除了ValueSource之外,还有很多方法可以为参数化测试提供参数,如下所示.有关详细信息,请参阅official junit user guide:
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
public class ComponentTest {
@ParameterizedTest
@ValueSource(strings = { "racecar", "radar", "able was I ere I saw elba" })
public void testCaseUsingParams(String candidate) throws Exception {
}
@Test
public void testCaseWithoutParams() throws Exception {
}
}
JUnit 4
如果您仍在使用Junit 4(我使用v4.8.2测试过),您可以将Enclosed runner与内部类和Parameterized runner一起使用:
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@RunWith(Enclosed.class)
public class ComponentTest {
@RunWith(Parameterized.class)
public static class ComponentParamTests {
@Parameters
...
@Test
public void testCaseUsingParams() throws Exception {
}
}
public static class ComponentSingleTests {
@Test
public void testCaseWithoutParams() throws Exception {
}
}
}
标签:parameterized,java,junit 来源: https://codeday.me/bug/20190926/1821530.html