编程语言
首页 > 编程语言> > java – 在参数化测试类中排除非参数测试

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