Il metodo che voglio provare sta chiamando un metodo finto con argomenti diversi:JMock - diverse invocazioni con diversi argomenti
public void methodToTest(){
getMock().doSomething(1);
getMock().doSomething(2);
getMock().doSomething(3);
}
Nel mio test di unità Vorrei sapere, se methodToTest davvero sta chiamando i metodi con esattamente quegli argomenti. Questo è il codice che ho scritto:
@Test
public void myMockTest(){
oneOf(mock).doSomething(1);
oneOf(mock).doSomething(2);
oneOf(mock).doSomething(3);
}
A (2) ottengo un "invocazione Unexpected" - come se non poteva distinguere diversi argomenti. Così ho provato quello:
exactly(3).of(mock).doSomething(with(Matchers.anyOf(same(1), same(2), same(3))));
Ma anche questo non ha fatto quello che mi aspettavo.
Infine, questo ha funzionato:
exactly(3).of(mock).doSomething(with(any(Integer.class)));
Quindi so, che il mio metodo è stato chiamato 3 volte con qualsiasi numero intero. C'è un modo per essere sicuro, è esattamente l'argomento (i) che ho passato?
Bene, il codice pubblicato funziona bene. JMock sembra avere problemi con gli oggetti cast, anche se .. Risolto finora. –
quali sono i problemi di casting? Puoi darci maggiori dettagli? –
Questa domanda è ora risolta? –