Дразнящий java.util.logging.Logger при использовании джерси - PullRequest
0 голосов
/ 16 ноября 2018

В нашем проекте мы используем maven, jersey, Mockito и java.util.logging для журналов. Во время выполнения теста Junit с поддельными объектами метод log.log () выбрасывает InvalidUseOfMatchersException. Ниже приведен пример кода.

import javax.inject.Inject;
import java.util.logging.Logger;
import java.util.logging.Level;

public class Sample{

    @Inject
    Logger log;

    public String runLog(String name){
        log.log(Level.INFO, "Name = "+name);
    return "name";
    }
}

public class SampleTest{

    @InjectMocks
    Sample sample;

    @Mock
    Logger log;


    public void setup() throws Exception(){
        MockitoAnnotations.initiMocks(this);
    }

    @Test
    public void testRunLog(){
        doNothing().when(log).log(any(Level.class), anyString());
        String s = sample.runLog(anyString());
        assertNotNull(s);
    }

}

1 Ответ

0 голосов
/ 16 ноября 2018

Вот проблема:

String s = sample.runLog(anyString());

Вы можете использовать anyString (и все другие методы сопоставления) только в методах verify и when.

Если вам не важно точное значение, которое вы передаете, передайте некоторую константу или случайную строку.

...