gpt4 book ai didi

android - 如何在 Android Espresso 测试中测试 setResult()?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:02 25 4
gpt4 key购买 nike

在Android Espresso测试中有什么好的方法可以测试结果代码和数据吗?我正在使用 Espresso 2.0。

假设我有一个 Activity称为 BarActivity.class ,在执行某些操作后,调用 setResult(int resultCode, Intent data)具有适当的有效负载。

我想写一个测试用例来验证 resultCodedata .但是,因为 setResult()final方法,我无法覆盖它。

我想到的一些选项是:

  • 定义一个新方法,例如 setActivityResult()并使用它以便它可以被拦截,等等......
  • 编写一个将调用 startActivityForResult() 的仅测试 TestActivity在 BarActivity并查看 TestActivity.onActivityResult() 中的结果

尝试思考两害相权取其轻,或者是否有关于如何对此进行测试的任何其他建议。有什么建议么?谢谢!

最佳答案

如果您同时切换到最新的 Espresso 版本 3.0.1,您可以简单地使用 ActivityTestRule 并获得如下所示的 Activity 结果:

assertThat(rule.getActivityResult(), hasResultCode(Activity.RESULT_OK));
assertThat(rule.getActivityResult(), hasResultData(IntentMatchers.hasExtraWithKey(PickActivity.EXTRA_PICKED_NUMBER)));

您可以找到一个工作示例 here .

关于android - 如何在 Android Espresso 测试中测试 setResult()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30083487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com