是否有某种方法可以在不运行UI测试的情况下测试单个View
组件?
例如,我可以检查以下情况:
检查View
状态的变化。例如,当调用onClick()
方法时,将调用View
的状态变化(颜色变化或可见性)。
检查是否在RecyclerView.Adapter
中给出了列表,然后将其填充,并且例如可以检查某些元素并相对于所传递的列表检查其有效性。 / p>
当调用方法时,动画开始。
在这种情况下,我对渲染不感兴趣,仅对使用所需参数执行所需方法的事实感兴趣。
为此使用了哪些工具和方法? Robolectric
呢?我对他的评价不是很好,他能满足我的要求吗?还有其他选择吗?
答案 0 :(得分:0)
我认为您正在尝试解决错误的问题。
如果您不关心其余的一切是否正常,那么测试view.setColor()的目的是什么?您应该测试的逻辑(因此如果需要/可以使用模拟)是触发所说“设置颜色”的逻辑。您是谁/如何确定某些操作触发了X视图上的setColor的?
如果您说:“但是在活动/片段/简历中,我该如何测试?”。我的答案是:不要将其放在活动/片段/继续中,也不要将其放在适当的viewModel中,或委托给具有您可以模拟和测试的业务逻辑的组件。
调用onClick时,实体(视图模型,演示者等)应接收click事件,做出决定并更改视图的“状态”作为响应,而不是决定更改的click方法。视图的颜色本身。
为什么不呢?
因为逻辑可能是错误的,可能包含错误,很难按原样进行测试,等等。尽管它与“已测试的委托”分开,但查找/修复/测试等更容易。 / p>