Android测试:在Espresso测试中,它是否正确实现“for Loop”?

问题描述:

我不确定在Espresso测试中它是否正确实现“for循环”。我想在ExpandableListView中测试所有父母的第一个孩子。 潜在代码:Android测试:在Espresso测试中,它是否正确实现“for Loop”?

for(i = 0; i < length; i++){ 
onData(anything()) 
    .inAdapterView(withId(R.id.userProfileActivityList)) 
    .atPosition(i) 
    .check(matches(isDisplayed())) 
    .perform(click()) 
    .check(matches(hasDescendant(isDisplayed()))); 
} 

非常感谢。

+0

测试的一般经验法则是每个方法一个断言。如果你想创建一个数组并对另一组值进行验证,那么它就没问题。你究竟想要对它进行测试呢? – sumandas

+0

你好,谢谢你的回复。其实我想测试每个统一的父母是可点击和显示的,并且每个父母也有显示的统一的孩子。 –

当然,为什么不呢?我有两点想法。

答:你做了什么是好的,良好的作风,导致较少的代码复用等

B:我有时喜欢冗长的代码在测试情况下,结果清楚起见。当我的测试用例失败时,我想知道他们为什么失败了,所以我可以快速回到我的代码并修复它们。这也是“每个方法一个断言”概念的动机。

想一想:当这个测试用例失败时,它会以一种引导开发人员清晰易用的正确功能的方式失败?

如果这个问题的答案是肯定的,还有什么关系?当然,这包含很多!在测试用例中保持一般良好的编码风格,使用可靠的消息进行良好的断言,并确保您的断言可以提供稳定的堆栈跟踪......仅举几例!

+0

谢谢,这很好。我没有想过如果测试失败和解决问题的后果。我们如何知道哪些/哪些功能完全失败?父母,孩子?我会重新考虑这个循环) –