需要添加以下注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:xmls/spring-context.xml"})
public class MapperTest {
maven仓库地址
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
测试的时候报错 : org.junit.runners.model.InvalidTestClassError: Invalid test class 'cn.util.CSDN':, 一般有两个错误引起的
错误代码如下
org.junit.runners.model.InvalidTestClassError: Invalid test class 'cn.util.CSDN1':
1. Method Test2() should be void
at org.junit.runners.ParentRunner.validate(ParentRunner.java:525)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:102)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:84)
at org.junit.runners.JUnit4.<init>(JUnit4.java:23)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:10)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:36)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:49)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
解决方法
1、 有时候IDEA开启了自动导包, 导致@Test注解导包时会导错包。 正确的包地址: import org.junit.Test;
2、方法类型错误
使用注意事项,
//单元测试
// 1、添加 @Test注解 包路径是 import org.junit.Test;注意不要导错包,
// 2、方法类型必须是 void,没有返回值
// 3、注意一个坑,和本Test单元测试同类中的其他测试方法也不能添加带返回值的方法,方法类型也必须是void
@Test
public void Test(){
System.out.println( " ============= ");
System.out.println( " ============= ");
System.out.println( " ============= ");
}
如下图,如果 Test2 方法带返回值,那么Test1 方法执行的时候也会报错,错误类型如下
如果方法都改成void类型,就没有错误了