我正在为我的项目做一些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());
}
}
抱歉没有英文代码。 谢谢你的帮助! ;)
答案 0 :(得分:2)
我建议你仔细检查你的进口。出于调试目的,使用类似testMyFlow()
的模式命名方法。出于某种原因,您可能已导入或使用旧版本的JUnit作为跑步者。
您也可以尝试使用以下方式为您的课程注释:
@RunWith(JUnit4.class)
这将始终调用JUnit的4默认运行器。更多信息here。
此外,如果您想使用Mockito
,您需要使用测试运行器注释该类:
@RunWith(MockitoJUnitRunner.class)
public class ZamowieniaRepositoryTest {