Ben benzeyen bir FizzConfigurator
sınıf için bir birim test yazıyorum bir casus yöntemini alaycı 't aslında ateş ve veritabanı vurmak), ama bu doBuzz(String)
arayarak doWidget
yürütme biter bu beni için doğrulamak sağlar. Mockito iş için doğru araç gibi görünüyor. Bu Mockito
public class FizzConfiguratorTest {
@Test
public void callingDoBuzzAlsoCallsDoWidget() {
FizzConfigurator fixture = Mockito.spy(new FizzConfigurator());
Mockito.when(fixture.doWidget(Mockito.anyString(), Config.ALWAYS)).
thenThrow(new RuntimeException());
try {
fixture.doBuzz("This should throw.");
// We should never get here. Calling doBuzz should invoke our
// stubbed doWidget, which throws an exception.
Assert.fail();
} catch(RuntimeException rte) {
return; // Test passed.
}
}
}
(bana en azından) iyi bir Oyun gibi görünüyor. Aslında o kadar kodlamak için gittiğinizde Ama (Mockito.when(...)
hat test yöntemi içinde 2 satırda aşağıdaki derleyici hatası alıyorum:
tip mockito yöntemi (T) için geçerli değildir.
- Ben doğru bu test kurulumu yaklaşan muyum Ya da daha iyi, Mockito- vardır: argümanlar (void) Ben mockito
void
döndüren bir yöntem ile alay edemez görüyoruz
yüzden sormak? önerilen, test yolu doBuzz
başlık altında doWidget
çağırır? Ve
FizzConfigurator
sınıfının en kritik yöntemidir olarak doWidget
stubbing/alay hakkında ne yapabilirim?
bir başka problem() 'casuslara kullanılamaz zaman 'olmasıdır /mockito/Mockito.html#13) (gotcha not alın) ve [do * yöntemleri] (http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#12). – dj18
Ve Bir çağrı yapmak olmadığını kontrol [ '' Mockito.reset''] (http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html#17) kodunuzu sinsice etti - sahte etkileşimleri ve saplamayı unutur. – phineas