java 拦截方法调用_java – Mockito – 拦截模拟上的任何方法调用

是否可以以通用方式拦截模拟的所有方法调用?

给予供应商提供的类,如:

public class VendorObject {

public int someIntMethod() {

// ...

}

public String someStringMethod() {

// ...

}

}

我想创建一个模拟器,将所有方法调用重定向到具有匹配方法签名的另一个类:

public class RedirectedToObject {

public int someIntMethod() {

// Accepts re-direct

}

}

Mockito中的when()。thenAnswer()结构似乎符合账单,但我找不到一种方法来匹配任何方法调用与任何args。 InvocationOnMock肯定会给我所有这些细节。有没有一个通用的方式来做到这一点?看起来像这样的东西,何时(vo。*)被替换为适当的代码:

VendorObject vo = mock(VendorObject.class);

when(vo.anyMethod(anyArgs)).thenAnswer(

new Answer() {

@Override

public Object answer(InvocationOnMock invocation) {

// 1. Check if method exists on RedirectToObject.

// 2a. If it does, call the method with the args and return the result.

// 2b. If it does not, throw an exception to fail the unit test.

}

}

);

在供应商类周围添加包装器来使嘲笑变得容易不是一个选择,因为:

>现有的代码库太大了。

>极具性能关键应用的一部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值