【问题标题】:Check @RequestMapping - unit test检查@RequestMapping - 单元测试
【发布时间】:2017-07-07 12:10:24
【问题描述】:

我有一个任务要做: 这个控制器应该有自己的单元测试来验证,@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");
  }
}

如果将来有人会更改此值,则单元测试应显示此值。

单元测试对我来说是一个新问题,所以我可以寻求一些建议吗?提前谢谢你。

【问题讨论】:

    标签: java unit-testing spring-mvc tdd


    【解决方案1】:

    您尚未说明您使用的是哪个版本的 Spring,但如果它大于 3.2,您可以设置一个简单的单元测试,仅测试给定的 Controller 而不是整个上下文,如下所示:

    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());
        }
    }
    

    【讨论】:

    • 谢谢,但你能告诉我“myjsoncontent”是什么吗?在哪里可以找到它?
    • 是ArticlePairs的json表示
    猜你喜欢
    • 1970-01-01
    • 2019-05-12
    • 2020-11-15
    • 2021-10-16
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多