Есть два способа:
Сторона клиента: вам нужно использовать Javascript для обнаружения браузера и импорта соответствующего стиля CSS. Взгляните на эту статью. (ссылка больше не доступна)
Серверная сторона: вам необходимо обнаружить пользовательский агент и выполнить соответствующий HTML-код. Вот ссылка PHP source для этого.
Вы не можете издеваться над статическим методом с помощью ванильного мокито.
Я бы предложил создать защищенный метод в 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, чтобы иметь возможность смоделировать защищенный метод.