配置文件:
server.servlet.context-path=/app
单元测试:
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SgcApplication.class)
@AutoConfigureMockMvc
public class ControllerBaseTest {
@Autowired
private MockMvc mvc;
private volatile String token;
@Before
public void setupMockMvc() {
String json = "{\"username\":\"admin\",\"password\":\"jGxRddAIz4V+d8R4c761/mDibFvP58p2ZzqoWhyBsgqSLdOTEJcD+d6Gal9wav6f5DC5L+m4nMhgXcBNPXnII/H63fbjBSKjiK7vIdCdJ0mhbO0xcyYTZQqQWEYchNpPkrzHtURTNUYSEGKg7DjxZpE8OEBgGtMdPYnZ6S/bVtg=\",\"dynamicCode\":\"12345\"}";
try {
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post("/app/doubleFactorLogin")
.contentType(MediaType.APPLICATION_JSON_UTF8)
//传json参数
.content(json.getBytes())
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
String res = mvcResult.getResponse().getContentAsString();
AjaxResult ajaxResult = JSONObject.parseObject(res, AjaxResult.class);
token = (String) ajaxResult.get(Constants.TOKEN);
System.out.println("登录token:" + token);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void test() {
String json = "{\"beginDate\":\"2019-01-01\",\"endDate\":\"2020-01-01\",\"capCode\":\"ALL\"}";
try {
System.out.println("登录token:{}" + token);
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post("/app//queryOverview")
.accept(MediaType.APPLICATION_JSON_UTF8).header("Authorization", token)
.content(json.getBytes()) //传json参数
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
System.out.println(mvcResult);
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行报404,
解决方法,将单元测试url的前缀/app去掉,改成
@Slf4j
@RunWith(SpringRunner.class)
@SpringBootTest(classes = SgcApplication.class)
@AutoConfigureMockMvc
public class ControllerBaseTest {
@Autowired
private MockMvc mvc;
private volatile String token;
@Before
public void setupMockMvc() {
String json = "{\"username\":\"admin\",\"password\":\"jGxRddAIz4V+d8R4c761/mDibFvP58p2ZzqoWhyBsgqSLdOTEJcD+d6Gal9wav6f5DC5L+m4nMhgXcBNPXnII/H63fbjBSKjiK7vIdCdJ0mhbO0xcyYTZQqQWEYchNpPkrzHtURTNUYSEGKg7DjxZpE8OEBgGtMdPYnZ6S/bVtg=\",\"dynamicCode\":\"12345\"}";
try {
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post("/doubleFactorLogin")
.contentType(MediaType.APPLICATION_JSON_UTF8)
//传json参数
.content(json.getBytes())
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
String res = mvcResult.getResponse().getContentAsString();
AjaxResult ajaxResult = JSONObject.parseObject(res, AjaxResult.class);
token = (String) ajaxResult.get(Constants.TOKEN);
System.out.println("登录token:" + token);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void test() {
String json = "{\"beginDate\":\"2019-01-01\",\"endDate\":\"2020-01-01\",\"capCode\":\"ALL\"}";
try {
System.out.println("登录token:{}" + token);
MvcResult mvcResult = mvc.perform(MockMvcRequestBuilders.post("/queryOverview")
.accept(MediaType.APPLICATION_JSON_UTF8).header("Authorization", token)
.content(json.getBytes()) //传json参数
)
.andExpect(MockMvcResultMatchers.status().isOk())
.andDo(MockMvcResultHandlers.print())
.andReturn();
System.out.println(mvcResult);
} catch (Exception e) {
e.printStackTrace();
}
}
}