UI测试,无需在真实设备上运行测试

时间:2020-07-17 07:53:29

标签: android android-testing

是否有某种方法可以在不运行UI测试的情况下测试单个View组件?

例如,我可以检查以下情况:

  • 检查View状态的变化。例如,当调用onClick()方法时,将调用View的状态变化(颜色变化或可见性)。

  • 检查是否在RecyclerView.Adapter中给出了列表,然后将其填充,并且例如可以检查某些元素并相对于所传递的列表检查其有效性。 / p>

  • 当调用方法时,动画开始。

在这种情况下,我对渲染不感兴趣,仅对使用所需参数执行所需方法的事实感兴趣。

为此使用了哪些工具和方法? Robolectric呢?我对他的评价不是很好,他能满足我的要求吗?还有其他选择吗?

1 个答案:

答案 0 :(得分:0)

我认为您正在尝试解决错误的问题。

如果您不关心其余的一切是否正常,那么测试view.setColor()的目的是什么?您应该测试的逻辑(因此如果需要/可以使用模拟)是触发所说“设置颜色”的逻辑。您是谁/如何确定某些操作触发了X视图上的setColor的?

如果您说:“但是在活动/片段/简历中,我该如何测试?”。我的答案是:不要将其放在活动/片段/继续中,也不要将其放在适当的viewModel中,或委托给具有您可以模拟和测试的业务逻辑的组件。

调用onClick时,实体(视图模型,演示者等)应接收click事件,做出决定并更改视图的“状态”作为响应,而不是决定更改的click方法。视图的颜色本身。

为什么不呢?

因为逻辑可能是错误的,可能包含错误,很难按原样进行测试,等等。尽管它与“已测试的委托”分开,但查找/修复/测试等更容易。 / p>