Почему Matchers.any (<T>.class) имеет значение null в MockMvcResultMatchers.model

Я пытаюсь проверить, что атрибут модели имеет экземпляр HostInterfaceDto. Когда я запускаю тест, я получаю сообщение об ошибке, в котором говорится, что предоставленный мэтчер равен нулю. Я был почти уверен, что понял этот документ. Что я делаю неправильно? Почему ожидается нулевое значение?

Трассировка ошибки:

java.lang.AssertionError: Model attribute 'hostInterfaceDto' expected:<null> but was:<com.etisoftware.manager.beans.dto.hostinterfaces.HostInterfaceDto@4b14918a>

Метод испытания

    @Test
public void shouldGetAddPageForGet() throws Exception
{
    // Arrange
    Integer type = 1;

    List<String> versions = Arrays.asList("3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7");
    Map<Integer, String> options = new HashMap<>();
    Mockito.when(hostInterfaceService.getVersions(type)).thenReturn(versions);
    Mockito.when(ovNodeService.getOptionList()).thenReturn(options);

    // Act
    mockMvc.perform(MockMvcRequestBuilders.get("/hostInterfaces/" + type + "/add"))
            .andExpect(MockMvcResultMatchers.status().isOk())
            .andExpect(MockMvcResultMatchers.view().name("hostInterfaces/add"))
            .andExpect(MockMvcResultMatchers.model().attribute("hostInterfaceDto", Matchers.any(
                    HostInterfaceDto.class)));

}

Метод Контроллера

    @GetMapping("{hostInterfaceType}/add")
public String getAddPage(@PathVariable Integer hostInterfaceType, Model model)
{
    HostInterfaceDto dto = new HostInterfaceDto();
    dto.setType(hostInterfaceType);

    model.addAttribute("hostInterfaceDto", dto);
    addMappingSpecificAttributes(model, hostInterfaceType);
    return "hostInterfaces/add";
}

0 ответов

Другие вопросы по тегам