我有以下情况。
MyClass我有一个 API的类,myAPI()其内容如下:
class MyClass {
public void myAPI() {
...
MyOtherClass myOtherObj = new MyOtherClass();
String value = myOtherObj.decodeAndGetName();
...
}
}
在这里,我们有MyOtherClass一个包含decodeAndGetName()执行某些操作的 API。它在不同的包中,我无法修改它的代码。
要求
我需要为上面写一个junit测试myAPI()。现在我想以某种方式模拟 . 的对象MyOtherClass并模拟 . 的返回值decodeAndGetName()。
我无法做到这一点,因为我们有一个new MyOtherClass(),一旦流程到达这一行,它就会创建一个新实例并转到decodeAndGetName()API。我需要的是,decodeAndGetName()当在上面的代码中遇到此调用时,某种方法可以防止流程进入并取一个模拟值。
请让我知道一种方法来做到这一点。