检查@RequestMapping - 单元测试
Check @RequestMapping - unit test
我有一个任务要做:
该控制器应该有自己的单元测试来验证 @RequestMapping
是否设置为 / api / report / article_pairs
。
@RestController
@RequestMapping("/api/report/article_pairs")
public class ArticlePairsController extends ReportController<ArticlePairs>{
public ArticlePairsController(HttpReportExecutor<ArticlePairs> articlePairs) {
super(articlePairs);
}
@PostMapping()
public HttpEntity<Void> proceed(@RequestBody ArticlePairs articlePairs) {
articlePairs.setDbconn(schemaName + "." + CENTRALA);
return executeReport(articlePairs, "report.articlePairs");
}
}
如果将来有人要更改这个值,单元测试应该显示这个。
单元测试对我来说是一个新问题,所以我可以寻求一些建议吗?提前谢谢你。
您没有说明您使用的 Spring 是哪个版本,但如果它大于 3.2,您可以设置一个简单的单元测试,它只测试给定的控制器而不是整个上下文,如下所示:
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(SpringJUnit4ClassRunner.class)
public class SitemapControllerTest {
private MockMvc mvc;
@Before
public void setup() {
mvc = MockMvcBuilders.standaloneSetup(SitemapControllerTest.class).build();
}
@Test
public void testHappyPath() throws Exception {
mvc.perform(post("/api/report/article_pairs")
.content("{yourjsoncontent}")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}
}
我有一个任务要做:
该控制器应该有自己的单元测试来验证 @RequestMapping
是否设置为 / api / report / article_pairs
。
@RestController
@RequestMapping("/api/report/article_pairs")
public class ArticlePairsController extends ReportController<ArticlePairs>{
public ArticlePairsController(HttpReportExecutor<ArticlePairs> articlePairs) {
super(articlePairs);
}
@PostMapping()
public HttpEntity<Void> proceed(@RequestBody ArticlePairs articlePairs) {
articlePairs.setDbconn(schemaName + "." + CENTRALA);
return executeReport(articlePairs, "report.articlePairs");
}
}
如果将来有人要更改这个值,单元测试应该显示这个。
单元测试对我来说是一个新问题,所以我可以寻求一些建议吗?提前谢谢你。
您没有说明您使用的 Spring 是哪个版本,但如果它大于 3.2,您可以设置一个简单的单元测试,它只测试给定的控制器而不是整个上下文,如下所示:
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.http.MediaType;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
@RunWith(SpringJUnit4ClassRunner.class)
public class SitemapControllerTest {
private MockMvc mvc;
@Before
public void setup() {
mvc = MockMvcBuilders.standaloneSetup(SitemapControllerTest.class).build();
}
@Test
public void testHappyPath() throws Exception {
mvc.perform(post("/api/report/article_pairs")
.content("{yourjsoncontent}")
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk());
}
}