//不加这两个注解,所有自动注入的对象将会失败(null)
@RunWith(SpringRunner.class)
@SpringBootTest
public class SampleTest {
@Autowired
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);
}
}
错误一
- 报错:
junit启动报错 Unable to find a @SpringBootConfiguration
- 原因:
项目SpringBoot启动类路径为com.eddue.datav下与测试类com.eddue.biz不一致。因为@SpringBootTest会自动查询@SpringBootConfiguration,在com.eddue.biz类路径下搜索@SpringBootConfiguration。然而java源代码的类路径为com.eddue.datav下的ServerApplication的@SpringBootApplication中引用了@SpringBootConfiguration,这里才有@SpringBootConfiguration注解。因此导致无法查询到@SpringBootConfiguration注解,导致无法加载springboot启动类ServerApplication。
- 解决方案:
1、修改测试类和启动类的包名为一致的
2、修改测试类代码,将测试类代码@SpringBootTest改为@SpringBootTest(classes = XXXApplication.class),手动指定springboot启动类路径。