Unit testing 如何在PowerMockito中模拟java.lang.reflect.Method类?
我有一个实现InvocationHandler的类,如下所示:Unit testing 如何在PowerMockito中模拟java.lang.reflect.Method类?,unit-testing,junit,mocking,mockito,powermock,Unit Testing,Junit,Mocking,Mockito,Powermock,我有一个实现InvocationHandler的类,如下所示: public class MyProxyClass implements InvocationHandler { public Object invoke (Object proxy, Method method, Object[] args) throws Throwable { //Do something interesting here } } 使用PowerMock&Mockito,我试图在单元测试类
public class MyProxyClass implements InvocationHandler
{
public Object invoke (Object proxy, Method method, Object[] args) throws Throwable
{
//Do something interesting here
}
}
使用PowerMock&Mockito,我试图在单元测试类中传入一个模拟方法对象:
@RunWith(PowerMockRunner.class)
@PrepareForTest({Method.class})
public class MyProxyTest
{
MyProxy underTest;
@Test
public void testInvoke() throws Throwable
{
Method mockMethod = mock(Method.class);
//...
}
}
由于方法是final
,所以我已经完成了@PrepareForTest
技巧,但这似乎并没有解决它这是因为它是自举的吗?我只是做错了吗?
我一直在看下面的链接,但没有明确的内容:
-
- 这一个似乎更倾向于静态方法,而不是创建最终类的模拟
但是,您试图做什么需要模拟方法?您可以很容易地创建一个真正的方法对象。您甚至可以在一个伪类上创建一个真正的方法对象,然后检查它是否被调用以及使用了什么参数。你不能用Mockito和Powermock来做这件事。查看您的问题是否与类似。是的,看起来类似。我最终选择了通常从mock创建一个Method对象,然后验证该方法是否在mock上被调用。谢谢