簡體   English   中英

來自 Java object 的 httpserverletrequest 單元測試

[英]Unit test for httpserverletrequest from Java object

我已經編寫了通過沒有任何問題的單元測試:

private Example ex;
@BeforeEach
    void setUp(){
        ex = new ex();
    }
@Test
    void funcTest(){
        UserDataType p1 = new UserDataType("");
        Response noResponse = ex.func(p1);
        assertNotNull(noResponse);
        assertEquals(noResponse.getStatus(),Status.NOT_FOUND.getStatusCode());
    }


public Response func(@Valid Object Obj) {
        UserDataType p1;
        ObjectMapper MAPPER = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

        try {
            String eventJson =  MAPPER.writeValueAsString(obj);
            p1 = MAPPER.readValue(eventJson, UserDataType.class);
            }
            catch (Exception ex) {
                  return Response.status(Status.INTERNAL_SERVER_ERROR).build();            
            }

        if (!p1.object.equalsIgnoreCase("something")) {
            return Response.status(Status.NOT_FOUND).build(); // p1 in test has object as ""
        }

現在的問題是:

因為,我將更改代碼庫中的func如下:

public Response func(@Context HttpServletRequest req) {
      // do Same thing as above
}

是否可以將 object 包裝為 HTTPServerLetRequest 以便測試用例可以通過?

  1. 我正在使用dropwizard框架。
  2. 我知道為了獲得 JSON,我需要使用req.getInputStream() 我基本上是在詢問如何/如何作為req傳遞

通常的方法是使用一些模擬對象框架(例如Mockito ),在單元測試中“模擬” HttpServletRequest 接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM