解决问题
出现该报错是因为 @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);
}
}
也会正常启动。
文章讨论了在SpringBoot项目中如何正确使用@SpringBootTest注解进行集成测试,以及不同测试类结构对测试运行的影响。重点介绍了`@Test`注解的使用规则和`@SpringBootTest`与普通测试类的区别。
1496

被折叠的 条评论
为什么被折叠?



