public class TestStatic {
public static int methodstatic(){
return 3;
}
}
@Test
@PrepareForTest({TestStatic.class})
public class TestStaticTest extends PowerMockTestCase {
public void testMethodstatic() throws Exception {
PowerMockito.mock(TestStatic.class);
Mockito.when(TestStatic.methodstatic()).thenReturn(5);
PowerMockito.verifyStatic();
assertThat("dff",TestStatic.methodstatic()==5);
}
@ObjectFactory
public IObjectFactory getObjectFactory() {
return new org.powermock.modules.testng.PowerMockObjectFactory();
}
}
अपवाद:PowerMock स्थिर वर्ग नकली नहीं है
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
2. inside when() you don't call method on mock but on some other object.
मैं Intellij के माध्यम से चला रहा हूँ, विरासत कोड तरीकों के बहुत सारे है ...
किसी ने की है और विचार, मैं चला गया आधिकारिक tuto के माध्यम से, कोई मतलब इस सरल
धन्यवाद, हाँ, आप विरासत कोड का चयन नहीं करते हैं :), लेकिन आप रिफैक्टर कर सकते हैं ... बीमार स्थिर मॉक करें और नकली पैटर्न लागू करें। – Sam
सहमत विरासत कोड एक दर्द है, PowerMock वास्तव में इस मामले में शक्तिशाली है :) – Brice
यह सच नहीं है: "अगर आप स्थिर कॉल को स्टब करना चाहते हैं तो आपको 'मॉकिटो' का उपयोग नहीं करना चाहिए। PowerMockito उपयोग पृष्ठ अपने उदाहरण कोड में 'Mockito.when' का उपयोग करता है। – ach