在仪器单元测试中模拟方法

时间:2018-12-19 07:18:15

标签: android mockito expresso

我正在运行Expresso测试,并且我需要使用上下文作为参数来模拟该方法。这段代码位于片段启动的3.0中。由于我正在模拟器中运行测试用例,因此我必须模拟方法onStart()以在片段启动之前返回true。下面的代码以isBLESupported方法编写。

onStart

这是我在启动片段之前模拟该方法的方法。但是我看到测试用例正在执行真实代码,并且模拟无法正常工作。

BreatheMapperUtils utils = new BreatheMapperUtils();
if (utils.isBLESupported(getActivity())) {
    startSyncProcess();
} else {
    //TODO does not run on emulator 
    showNotificationAlert(getString(R.string.ERROR), getString(R.string.BLE_NOT_SUPPORTED), "Ok");
}

但是模拟仍然没有成功。如果您有任何想法,请帮助。是否可以通过上下文模拟该方法?我已经阅读了一些文档,并说我们不能在Expresso测试用例中使用Power Mockito。

1 个答案:

答案 0 :(得分:1)

可能是因为您在onStart中创建了BreatheMapperUtils的新实例。该模拟仅对您在设置方法中使用的实例有效。