[英]JUnit parameterized and non-parameterized tests with PowerMockito
所以我试图在同一个测试 class 中运行 JUnit 参数化测试和非参数化测试。 但是我遇到了一个错误或其他错误。 有没有人尝试过这个并且他们成功地这样做了? 我知道其他跑步者需要与@PowerMockRunnerDelegate
一起使用才能正确运行。 所以这就是我想出的:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Enclosed.class)
@PrepareForTest(Some.class)
@PowerMockIgnore("javax.management.*")
public class TestClass {
@PowerMockRunnerDelegate(Parameterized.class)
public static class ParameterizedTests {
}
@Test
public void nonParameterizedTestOne() {
}
@Test
public void nonParameterizedTestTwo() {
}
}
但我得到了错误:
Test class should have exactly one public zero-argument constructor
如果没有 powermock,这种情况可以通过以下方式轻松处理:
@RunWith(Enclosed.class)
public class TestClass {
@RunWith(Parameterized.class)
public static class ParameterizedTests {
}
@Test
public void nonParameterizedTestOne() {
}
@Test
public void nonParameterizedTestTwo() {
}
}
但我肯定想使用powermock。 有什么解决办法吗?
我有同样的问题,这对我有用:
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Enclosed.class)
@PrepareForTest({Some.class})
public class TestClass {
private static void setUpOnceForAllTests() {
}
private static void setUpForEveryTest() {
}
public static class SingleTests {
// Setup once for all single tests
@BeforeClass
public static void setUpBeforeClass() {
setUpOnceForTests();
}
// Setup for each and every single test
@Before
public void setUp() {
setUpForEveryTest();
}
@Test
public void nonParameterizedTestOne() {
}
@Test
public void nonParameterizedTestTwo() {
}
}
@PowerMockRunnerDelegate(Parameterized.class)
public static class ParameterizedTests {
// Setup once for all parameterized test
@BeforeClass
public static void setUpBeforeClass() {
setUpOnceForTests();
}
// Setup for each and every parameterized test
@Before
public void setUp() {
setUpForEveryTest();
}
@Parameterized.Parameters
public static Collection<Enum> param() {
return new ArrayList<>(Arrays.asList(Enum.values()));
}
@Parameterized.Parameter
public int param;
@Test
public void parameterizedTestOne() {
}
@Test
public void parameterizedTestTwo() {
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.