解决问题
出现该报错是因为 @Test 注解的错误使用。
@Test 注解的正确使用 :
- 权限必须是public
- 不能有参数
- 返回值类型是void
- 本类的其他的使用了Test注解的方法返回值也必须是void
- 正确导包 import org.junit.Test
一般正确使用 @Test 下,就没有报错了。
深入探讨
但是,我们可以继续深入探讨。
SpringBootApplication 对应的测试类
import org.junit.jupiter.api.Test;
@SpringBootTest
class EzyUserBackendApplicationTests {
@Resource
private UserMapper userMapper;
@Test
void contextLoads() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
正常运行。
如果换成:
import org.junit.Test;
则不能启动。
普通的一个测试类
import org.junit.Test;
import org.junit.runner.RunWith;
@SpringBootTest
@RunWith(SpringRunner.class)
public class SampleTest {
@Resource
private UserMapper userMapper;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
正常启动。
或者这样:
import org.junit.jupiter.api.Test;
@SpringBootTest
public class SampleTest {
@Resource
private UserMapper userMapper;
@Test
public void testSelect() {
System.out.println(("----- selectAll method test ------"));
List<User> userList = userMapper.selectList(null);
Assert.assertEquals(5, userList.size());
userList.forEach(System.out::println);
}
}
也会正常启动。