情况 ①:不能有返回值
@Controller
public class FileControllerTest{
@Autowired
private FileController fileController;
@Test
public String testDownload(){
fileController.download("2dd4209286df4f14b703890ccdc3d2ff");
return "";
}
}
报错:
java.lang.Exception: Method testDownload() should be void
at org.junit.runners.model.FrameworkMethod.validatePublicVoid(FrameworkMethod.java:99)
at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java:74)
at org.junit.runners.ParentRunner.validatePublicVoidNoArgMethods(ParentRunner.java:155)
...
解决办法:测试用例方法是不能有返回值的,必须是public void的。
情况 ②:NullPointerException
@Controller
public class FileControllerTest{
@Autowired
private FileController fileController;
@Test
public void testDownload(){
fileController.download("2dd4209286df4f14b703890ccdc3d2ff");
}
}
报错:
java.lang.NullPointerException
at com.yealink.version.controller.FileControllerTest.testDownload(FileControllerTest.java:20)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
...
解决办法:意味着要在测试类顶部加上注解@RunWith(SpringRunner.class)。
情况 ③:
Bean注入失败