2014-11-19 3 views
5

Я пытаюсь передать шаблон в mockito any(). Это методИспользование mockito с wildcard agruments

selectGatewayInfoConfig(Operation<?> o) 

То, что я пытаюсь сделать, это:

when(gatewayConfigSelector.selectGatewayInfoConfig(any(**!!!!!! HERE I NEED THIS WILDCARD !!!!**)); 
       .thenReturn(...something...); 

Спасибо заранее.

ответ

5

Как насчет?

when(gatewayConfigSelector.selectGatewayInfoConfig(any(Operation.class)); 
      .thenReturn(...something...); 

Пример:

@Test 
public void test() { 
    Tester mock = Mockito.mock(Tester.class); 
    Mockito.when(mock.selectGatewayInfoConfig(Mockito.any(Operation.class))).thenReturn("blah"); 

    System.out.println(mock.selectGatewayInfoConfig(null)); 
} 


class Operation<T> { 

} 

class Tester { 

    public String selectGatewayInfoConfig(Operation<?> o) { 
     return "hi"; 
    } 
} 
+0

Проблема заключается в том, что метод selectGatewayInfoConfig в классе тестер не является частью протестированного кода, где КОГДА следует применять условие. – user1554427

+0

Извините, я не понимаю вашего комментария. Класс, который вы издеваетесь, обычно потому, что вы не хотите тестировать, это то, что вы хотите издеваться. Пока класс находится на пути к классу, а не окончательно, вы должны быть в состоянии высмеять его, как указано выше. Является ли это методом возврата типа void? Если это так, когда() нужно писать несколько иначе. В противном случае использование любого (Operation.class) совпадения должно быть прекрасным. –

Смежные вопросы