2015-09-04 146 views
0

我试图创建一个Junit测试套件以及使用PowerMockRunner但它不起作用。使用PowerMockRunner与Junit测试套件

@RunWith(PowerMockRunner.class) 
@PowerMockRunnerDelegate(MainTest.class) 
@Suite.SuiteClasses({ MainTest.Class1Test.class }) 
@PrepareForTest({ 
    StaticFieldsProvider.class 
}) 
public class MainTest extends Suite { 

public MainTest(Class<?> klass, RunnerBuilder builder) 
     throws InitializationError { 
    super(klass, builder); 
} 

public static class TestBase { 
    @Before 
    public void setUp() { 
     MockitoAnnotations.initMocks(this); 
     PowerMockito.mockStatic(StaticFieldsProvider.class); 
    } 
} 

public static class Class1Test extends TestBase { 
    @Before 
    public void setUp() { 
     super.setUp(); 
    } 

    @Test 
    public void test(){ 
     assertTrue(true); 
    } 
} 
} 

当我尝试运行,它失败,错误 -

java.lang.IllegalArgumentException异常:测试类只能有一个构造 在org.junit.runners.model.TestClass( TestClass.java:40)

有关如何在上述情况下使用PowerMockRunner的任何建议?

感谢

+0

为什么你想要一个构造函数? – Makoto

+0

没有这个构造函数,它不会真正编译,因为'Suite'类中没有默认的构造函数。 – RandomQuestion

回答

0

不得延长Suite,因为这是JUnit 3中的一部分,您正在使用JUnit 4中(取下extends和构造函数)。请参阅JUnit Wiki约套房JUnit 4中更datails 。