我有以下情况。
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()
当在上面的代码中遇到此调用时,某种方法可以防止流程进入并取一个模拟值。
请让我知道一种方法来做到这一点。