簡體   English   中英

用powermokito模擬靜態Spring Boot控制器方法

[英]mocking a static Spring boot controller method with powermokito

@RunWith(PowerMockRunner.class) @RunWith(PowerMockRunner.class)

@PrepareForTest({StaticClass.class})

public void StaticClassTests()

{

  @Autowired

  private MockMvc mockMvc;

  @Test

  public void testStatic()

  {

    List<String> list = new ArrayList<>();

    list.add("a");

    list.add("b");

    list.add("c");

    PowerMokito.when(StaticClass.getList()).thenReturn(list);

    RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/getlist")
    .accept(MediaType.APPLICATION_JSON);

    MvcResult result = mockMvc.perform(requestBuilder)    //where the error is
            .andExpect(status().isOk())
            .andExpect(content().json("[\n" + 
                    " \"a\",\n" + 
                    " \"b\",\n" + 
                    " \"c\"\n" + 
                    "]"))
            .andReturn();

  }

}

您應該在調用perform方法之前初始化mockMvc。

    // Setup Spring test in standalone mode
    this.mockMvc = MockMvcBuilders.standaloneSetup(carSearchController).build();

注意:像在此處為CarSearchController那樣注入控制器

     @InjectMocks
     private CarSearchController carSearchController;

暫無
暫無

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

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