hiB*_*Lee 11 android android-testing android-espresso
有没有什么好方法可以在Android Espresso测试中测试结果代码和数据?我正在使用Espresso 2.0.
假设我有一个Activity被叫BarActivity.class,在执行一些动作时,调用setResult(int resultCode, Intent data)适当的有效负载.
我想写一个测试用例来验证resultCode和data.但是,因为setResult()是一种final方法,我无法覆盖它.
我想到的一些选项是:
setActivityResult(),只是使用它,以便它可以被拦截,等等......startActivityForResult()上BarActivity,并检查结果TestActivity.onActivityResult()试着想一下这两个邪恶中的哪一个更少,或者是否有关于如何测试这个的任何其他建议.有什么建议?谢谢!
Rob*_*rdi 18
如果同时你切换到最新的Espresso版本3.0.1,你可以简单地使用一个ActivityTestRule并得到如下的Activity结果:
assertThat(rule.getActivityResult(), hasResultCode(Activity.RESULT_OK));
assertThat(rule.getActivityResult(), hasResultData(IntentMatchers.hasExtraWithKey(PickActivity.EXTRA_PICKED_NUMBER)));
Run Code Online (Sandbox Code Playgroud)
你可以在这里找到一个有效的例子.
如果您愿意升级到2.1,请查看Espresso-Intents:
使用有意的API(Mockito.when的表兄弟),您可以为使用startActivityForResult启动的活动提供响应
这基本上意味着可以在启动特定活动时构建并返回任何结果(在您的情况下为BarActivity类).
请在此处查看此示例:https://google.github.io/android-testing-support-library/docs/espresso/intents/index.html#intent-stubbing
还有我在类似问题上的回答(但是有联系选择器活动),其中我展示了如何构建结果并将其发送回调用startActivityForResult()的Activity
| 归档时间: |
|
| 查看次数: |
3902 次 |
| 最近记录: |