के परीक्षण कोड का एक टुकड़ा मान लेते हैं:क्या मॉकिटो की सत्यापित विधि में jUnit Assert संदेश तर्क जैसी कोई चीज़ है?
Observable model = Class.forName(fullyQualifiedMethodName).newInstance();
Observer view = Mockito.mock(Observer.class);
model.addObserver(view);
for (Method method : Class.forName(fullyQualifiedMethodName).getDeclaredMethods())
{
method.invoke(model, composeParams(method));
model.notifyObservers();
Mockito.verify(
view, Mockito.atLeastOnce()
).update(Mockito.<Observable>any(), Mockito.<Object>any());
}
Mockito.verify
विधि एक अपवाद फेंकता है तो एक मॉडल में एक विधि Observable.setChanged()
विधि लागू नहीं किया है।
समस्या: loggers/System.print.out
जोड़े बिना मैं वर्तमान पद्धति है कि परीक्षण में नाकाम रही है क्या पता ही नहीं सकता है। वहाँ jUnit Assert
तरीकों को कुछ इसी तरह के होने का एक तरीका है:
Assert.assertEquals(
String.format("instances %s, %s should be equal", inst1, inst2),
inst1.getParam(),
inst2.getParam()
);
समाधान:
verify(observer, new VerificationMode()
{
@Override
public void verify(VerificationData data)
{
assertTrue(
format(
"method %s doesn't call Observable#setChanged() after changing the state of the model",
method.toString()
),
data.getAllInvocations().size() > 0);
}
}).update(Mockito.<Observable>any(), Mockito.<Object>any());
दूसरे तर्क के रूप में कारण पारित करना संदेश को संयोजित करने से हमें बेहतर रूप से बेहतर है। 'नई MockitoAssertionError (" संदेश ", ई) फेंक' – Kapep
MockitoAssertionError मापदंडों MockitoAssertionError के साथ एक निर्माता (स्ट्रिंग, अपवाद) नहीं है मैं का उपयोग 'नई AssertionError (" संदेश ", अपवाद)' बजाय के बाद से इस अपवाद प्रकार है कि दावा के लिए जुनीट द्वारा फेंक दिया गया है। –