0.问题原因和解决方法
当时我的问题在与mockMvc对象没有自动注入
类上加注解@AutoConfigureMockMvc
实体类上加@Resource
1.当时的报错,以及问题的代码
@SpringBootTest(classes = MybatisPlusDemoApplication.class)
@RunWith(SpringJUnit4ClassRunner.class)
class HelloControllerTest extends BaseTest {
@Autowired
private HelloController helloController;
private MockMvc mockMvc;
@Before
public void setup() {
mockMvc = MockMvcBuilders.standaloneSetup(helloController).build();
}
//无参构造方法
@Test
public void hello() throws Exception {
MvcResult mvcResult = mockMvc
.perform(MockMvcRequestBuilders
.get("/hello/mybatis/"))
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
logger.info(mvcResult.getResponse().getContentAsString());
}
}
2.当时的解决思路
一开始我以为是helloController的对象没有注入,所以我输出了一下helloController,发现helloController是存在的
@Test
public void helloTest() throws Exception {
System.out.println(helloController.toString());
}
接着我便认为是mockMvc没有自动注入,再次测试一下
@Test
public void helloTest2() throws Exception {
System.out.println(mockMvc.toString());
}
果然又报错空指针一场
3.解决方法
类上面加注解
@AutoConfigureMockMvc
对象上加
@Resource