java.lang.Exception:没有可运行的方法

时间:2018-01-06 16:07:39

标签: java junit

我正在为我的项目做一些JUnit 4测试。我已经阅读过stackOverflow解决方案,但没有一个有帮助。 在运行单个JUnit测试期间,我收到了错误

java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:191)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:128)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:416)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:84)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:65)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:111)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)

我尝试使Invalidate Caches失效,在我的库根目录中有junit-4.12.jar和hamcrest-core-1.3.jar。仍然有错误。 这是我的代码

    import org.junit.Before;
    import org.junit.Test;

    import static org.junit.Assert.*;

    /**
     * Created by Asus on 2018-01-06.
     */
    public class ZamowieniaRepositoryTest {

        ZamowieniaRepository zamRepo;

        @Before
        public void setUp() throws Exception {
            zamRepo = new ZamowieniaRepository();
            Zamowienie zamowienie = new Zamowienie();
            zamRepo.zamowienie = zamowienie;
        }

        @Test
        public void utworzPozycjeZamowienia() throws Exception {
            Towar towar = new Towar(2,"Wkladki",870);
            PozycjaZamowienia pozycja = new PozycjaZamowienia(0,towar);
            assertEquals(0,zamRepo.utworzPozycjeZamowienia(towar).getId());
            assertEquals(pozycja.getTowar(),zamRepo.utworzPozycjeZamowienia(towar).getTowar());
        }

        @Test
        public void sprawdzDostepnoscTowaru() throws Exception {
            zamRepo.zamowienie.dodajPozycje(new PozycjaZamowienia(0,new Towar(0,"Srubki",30),25,5));
            zamRepo.zamowienie.dodajPozycje(new PozycjaZamowienia(1,new Towar(0,"Wkrety",85),47,2));
            assertEquals(true,zamRepo.sprawdzDostepnoscTowaru(0,25));
            assertEquals(false,zamRepo.sprawdzDostepnoscTowaru(0,38));
        }

        @Test
        public void usunPozycje() throws Exception {
            zamRepo.zamowienie.dodajPozycje(new PozycjaZamowienia(0,new Towar(0,"Srubki",30),25,5));
            zamRepo.zamowienie.dodajPozycje(new PozycjaZamowienia(1,new Towar(0,"Wkrety",85),47,2));
            zamRepo.zamowienie.usunPozycje(1);
            assertEquals(1,zamRepo.zamowienie.getSize());
        }

}

抱歉没有英文代码。 谢谢你的帮助! ;)

1 个答案:

答案 0 :(得分:2)

我建议你仔细检查你的进口。出于调试目的,使用类似testMyFlow()的模式命名方法。出于某种原因,您可能已导入或使用旧版本的JUnit作为跑步者。

您也可以尝试使用以下方式为您的课程注释:

@RunWith(JUnit4.class)

这将始终调用JUnit的4默认运行器。更多信息here

此外,如果您想使用Mockito,您需要使用测试运行器注释该类:

@RunWith(MockitoJUnitRunner.class)
public class ZamowieniaRepositoryTest {