我正在测试[使用UI Automator
]特定任务,其中在创建应用程序类时启动线程。 [onCreate()
]。
现在,我已经模拟了整个线程,该线程对应用程序内部发生的一系列任务进行http调用。 [mockedThread
]
现在,我使用变量在TEST=true
时访问此对象,并在TEST=false
进行http调用的正常模式下运行。我只在测试方法中使TEST = true。
现在代码以这种方式工作 -
onCreate() {
if TEST == true {
use mock object and update it manually.
-- mockedObject
} else if TEST == false {
use real object and update it using http calls.
-- real Object
}
}
现在我正在尝试使用模拟对象without this if -- else loop of testing = TRUE or FALSE
。有没有我们可以用 mockito 或任何其他方式做到这一点......比如 dagger2 或其他什么?
[PS:请不要建议Powermock,因为这些不是静态对象]
我试图像这样嘲笑它但不起作用:
testMock() {
try {
AndroidApplication application = Mockito.mock(AndroidApplication.class);
context.startActivity(intent);
mDevice.wait(Until.hasObject(By.pkg(TARGET_PACKAGE).depth(0)), Constants.LAUNCH_TIMEOUT);
Mockito.when(application.getThreadObject()).thenReturn(mockObject);
} catch(MockException m){
m.printStackTracke();
}
}
错误我明白了 - 实际上,这个模拟没有互动。