gpt4 book ai didi

java - RobolectricTestRunner,测试类只能有一个构造函数

转载 作者:行者123 更新时间:2023-11-30 03:21:59 28 4
gpt4 key购买 nike

所以我有这个错误,使用 Robolectric。

java.lang.IllegalArgumentException: Test class can only have one constructor    at org.junit.runners.model.TestClass.(TestClass.java:40)    at org.junit.runners.ParentRunner.(ParentRunner.java:75)    at org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java:57)    at org.robolectric.RobolectricTestRunner$HelperTestRunner.(RobolectricTestRunner.java:626)    at org.robolectric.RobolectricTestRunner$2.evaluate(RobolectricTestRunner.java:198)    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)    at org.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:177)    at org.junit.runners.ParentRunner.run(ParentRunner.java:309)    at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)    at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)    at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)    at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)    at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)    at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)

老实说,它在几周前工作,但在我的项目中进行了一些更改后它就坏了。我使用的是 4.3_r1 平台版本。正常的 JUnit 测试运行良好。

测试类:

@RunWith(RobolectricTestRunner.class)public class PreferenceTest{    @Before    public void setUp()    {        RoboGuice.setBaseApplicationInjector(Robolectric.application, RoboGuice.DEFAULT_STAGE,                Modules.override(RoboGuice.newDefaultRoboModule(Robolectric.application))                        .with(new CoreConfigModule()));    }    @Test    public void testSessionTokenPrefs()    {        InternalPreferences.setSessionToken("abcd1234");        assertThat(InternalPreferences.getSessionToken()).isEqualTo("abcd1234");        InternalPreferences.clearSessionToken();        assertThat(InternalPreferences.getSessionToken()).isNull();    }}

最佳答案

所以从svn的历史来看,好像是我重命名了测试包之后测试就崩溃了。

我刚刚重新命名了它,但不是它以前的名字,它又可以工作了。我不知道到底发生了什么,但至少我的测试正在运行。

关于java - RobolectricTestRunner,测试类只能有一个构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18976851/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com