首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android测试-更改系统值以测试逻辑分支

Android测试-更改系统值以测试逻辑分支
EN

Stack Overflow用户
提问于 2019-06-13 03:27:24
回答 1查看 17关注 0票数 0

我有一个方法,它尝试使用特定的URL启动浏览器,或者如果设备没有安装浏览器,则使用WebView启动Activity并加载相同的URL。基本上是这样的:

代码语言:javascript
复制
try {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
    getActivity().startActivity(intent);
  } catch (ActivityNotFoundException e) {
    Intent intent = new Intent(getActivity(), MyWebView.class);
    intent.putExtra(EXTRA_URL, url);
    getActivity().startActivity(intent);
  }
}

如何测试两个分支?是否可以通过临时和编程方式从设备上注销浏览器活动?

我曾经考虑过一个Shadow Activity,当特定的ActivityNotFoundException被传递给它时,它会抛出一个Intent (我会检查数据URI),但是AFAIK没有办法在一个测试中打开这个Shadow,而在另一个测试中关闭它。

TYIA

EN

回答 1

Stack Overflow用户

发布于 2019-06-13 03:39:33

这真的是太过工程学了。用户没有在设备上安装web浏览器的几率为0。这不值得担心。

如果你担心url是无效的和无法解析的,这不太可能解决这个问题,因为它在你的web视图活动中也是无法解析的。如果你真的想变得偏执,我会抓住它,并为一个错误干杯。

至于测试-重构以使其可测试。将此代码编写为一个将URL作为参数的函数。对于不好的版本,请使用类似thisisnotavalidscheme://example.com的URL。这将失败,因为没有人将注册该计划。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56569147

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档