Тест Mockito - SimpMessageHeaderAccessor не может быть возвращен getHeaders () getHeaders () должен вернуть MessageHeaders

Есть два способа:

Сторона клиента: вам нужно использовать Javascript для обнаружения браузера и импорта соответствующего стиля CSS. Взгляните на эту статью. (ссылка больше не доступна)

Серверная сторона: вам необходимо обнаружить пользовательский агент и выполнить соответствующий HTML-код. Вот ссылка PHP source для этого.

0
задан HungryBird 18 January 2019 в 13:51
поделиться

1 ответ

Вы не можете издеваться над статическим методом с помощью ванильного мокито.

Я бы предложил создать защищенный метод в MyService, который бы обернул статический вызов и затем смоделировал его:

public class MyService implements UserDestinationResolver {

    @Override
    public UserDestinationResult myMethod(Message<?> message){
    SimpMessageHeaderAccessor accessor = getAccessor(message, SimpMessageHeaderAccessor.class);
     ...
    }

    protected SimpMessageHeaderAccessor getAccessor(Message<?> message, Class<T> requiredType){
         return SimpMessageHeaderAccessor.getAccessor(message, SimpMessageHeaderAccessor.class);
    }

Затем в тесте:

@RunWith(MockitoJUnitRunner.class)
public class MyServiceTest {

    @Mock
    private Message<?> message;


    @Mock
    private UserDestinationResult userDestinationResult;

    @InjectMocks
    @Spy
    private MyService myService;

    @Before
    public void set_up(){
        accessor = SimpMessageHeaderAccessor.wrap(message);
    }

    @Test
    public void resolveDestination(){
       // Arrange
       doREturn(accessor).when(myService).getAccessor(message,
                SimpMessageHeaderAccessor.class));

      ....
}

Изменение здесь что вам нужно шпионить за MyService, чтобы иметь возможность смоделировать защищенный метод.

0
ответ дан Maciej Kowalski 18 January 2019 в 13:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: