我只是想知道是否可以使用Robolectric框架对Android音频录音机应用程序进行单元测试。
据我所知,Robolectric不使用仿真器或真实设备进行测试。但在录音应用程序中,我需要测试是否录制了音频?它是否存储在SD卡上的指定位置?是否可以使用媒体播放器播放?和许多其他方案。
我已经研究了许多Robolectric教程,但他们没有回答我的问题。我还在Robolectric谷歌小组中提出了这个问题(https://groups.google.com/forum/#!topic/robolectric/JLKrRGsvIkU),该问题没有得到答复。阴影的概念在这里有用吗?
答案 0 :(得分:4)
我说你使用MediaRecorder录制音频。
Robolectric已经为MediaRecorder设置了Shadow。此阴影仅存储属性和当前的stoped / started状态。没有实施录音。有关详细信息,请参阅https://github.com/robolectric/robolectric/blob/master/robolectric-shadows/shadows-core/src/main/java/org/robolectric/shadows/ShadowMediaRecorder.java
是的,您可以使用robolectric对您的应用进行单元测试,但真正的录音将无效。您可以做的一件事是当其他代码部分使用此文件时,将虚拟记录文件放到目标路径中。
另外,像espresso这样的其他工具也很难测试。