我正在尝试为我的项目编写一个测试,让我知道,我通过反射假设我正在测试的类是否可能调用特定方法。
请注意以下示例代码:
class A implements SomeInterface {
@Override
public process(B bInstance) {
if (Math.rand() < 0.5)
bInstance.thirdPartyCall(param1, param2); //I need this!
}
}
类覆盖方法 process(...),该方法可能从传递给 process() 的对象之一调用方法。我需要我的测试来确定有问题的类是否已被编码为包含对 B() 的任何调用,以及参数是什么。如果我们只能将调用作为字符串获取,我希望能够使用它。
我们拥有覆盖 A() 的类和包含 B() 的类的所有源代码,但为了将来的维护,我们需要它是动态的。因为我们需要它是动态的,所以我不能只创建一个模拟,因为我不知道模拟的设置是否会影响从 bInstance 调用方法的代码。