在spring boot 做单元测试的时候,发现下面的代码中
content().string(equalTo(“Hello world”))
equalTo()方法报错,并且IDEA没有自动提示导入包。
而解决方法是,需要手动的导入一个静态包
import static org.hamcrest.Matchers.equalTo;
测试单元完整的代码如下:
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
private MockMvc mvc;
public void SetUp() throws Exception {
mvc = MockMvcBuilders.standaloneSetup(new hello()).build();
}
@Test
public void getHello() throws Exception{
mvc.perform(MockMvcRequestBuilders.get("/hello").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Hello world")));
}
}
而如果其中的status()、content()方法也出现同样的报错问题,IDEA无法自动导包的话,需要手动添加另外两个静态包。
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;