высмеивать статический метод загрузки контроллера Spring с powermokito - PullRequest
0 голосов
/ 29 октября 2018

Один из моих методов загрузки контроллера Spring вызывает статический метод. Я хочу проверить контроллер с помощью powermokito. Найдите ниже код для того же самого. Я получаю сообщение об ошибке при попытке вызвать метод mockMvc.perform () @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();

  }

}

StaticClass.getList () - статический метод Я получаю исключение java.lang.NullPointerException в строке с комментариями (т.е. mockMvc.perform (requestBuilder))

1 Ответ

0 голосов
/ 29 октября 2018

Вы должны инициализировать mockMvc перед вызовом метода execute.

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

Примечание: Введите ваш контроллер, как здесь, для CarSearchController

     @InjectMocks
     private CarSearchController carSearchController;
...