Ответ 1
Чтобы издеваться над вашим статическим методом:
new MockUp<MyClass>()
{
@Mock
boolean mockMethod( String input ) // no access modifier required
{
return true;
}
};
У меня есть статический метод, который будет вызываться из тестового метода в классе ниже:
public class MyClass
{
private static boolean mockMethod( String input )
{
boolean value;
//do something to value
return value;
}
public static boolean methodToTest()
{
boolean getVal = mockMethod( "input" );
//do something to getVal
return getVal;
}
}
Я хочу написать тестовый пример метода методаToTest, издеваясь над mockMethod. Пробовал, как ниже, и он не дает никакого выхода
@Before
public void init()
{
Mockit.setUpMock( MyClass.class, MyClassMocked.class );
}
public static class MyClassMocked extends MockUp<MyClass>
{
@Mock
private static boolean mockMethod( String input )
{
return true;
}
}
@Test
public void testMethodToTest()
{
assertTrue( ( MyClass.methodToTest() );
}
Чтобы издеваться над вашим статическим методом:
new MockUp<MyClass>()
{
@Mock
boolean mockMethod( String input ) // no access modifier required
{
return true;
}
};
Чтобы издеваться над статическим приватным методом:
@Mocked({"mockMethod"})
MyClass myClass;
String result;
@Before
public void init()
{
new Expectations(myClass)
{
{
invoke(MyClass.class, "mockMethod", anyString);
returns(result);
}
}
}
@Test
public void testMethodToTest()
{
result = "true"; // Replace result with what you want to test...
assertTrue( ( MyClass.methodToTest() );
}
Из JavaDoc:
Объект mockit.Invocations.invoke(класс methodOwner, String methodName, Object... methodArgs)
Задает ожидаемый вызов заданному статическому методу с заданным списком аргументов.