我使用Robotium自动化产品。在模块中,我必须验证派生的数据。
为此,我使用此代码:
class sharefirstlevel {
public void A {
for(int k=1;k<=4;k+=2) {
ExpectedResult = solo.clickInList(k);
for (int i = 0; i < ExpectedResult.size(); i++) {
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
solo.scrollListToLine(0, k);
ExpectedResult=solo.clickInList(1);
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
ExpectedResult = solo.clickInList(2);
Actualvalues[i] += ExpectedResult.get(i).getText().toString() + " ";
Log.d("xyz","Values of the Strings are"+Actualvalues[i].toString());
}
}
}
}
将所选值提取到数组中。
现在当它派生时,验证我使用的是这段代码:
class sharedLevel {
public void B {
for(int i=0; i <= sharefirstlevel.Actualvalues.length; i++) {
Log.d("xyz","Values are:"+sharefirstlevel.Actualvalues[i]);
actual=solo.searchText(sharefirstlevel.Actualvalues[i]);
assertEquals(expected, actual);
Log.d("xyz","Values are:"+sharefirstlevel.Actualvalues[i]);
}
}
}
但事情是在代码的第一部分正确的值被提取到数组。 在我传递数组值的代码的第二部分中,我没有得到值而是内存分配对象。因此,测试用例失败了。
请帮帮我。我正在修复!!
答案 0 :(得分:4)
如何使用
assertTrue(Arrays.equals(expected, actual));
编辑:此答案适用于提出赏金的问题,而不是编辑过的问题(https://stackoverflow.com/posts/18334315/revisions)
答案 1 :(得分:0)
我解决了问题。我必须在B级做出的改变是
for(int i=1;i<sharefirstlevel.Actualvalues.length;i++){
Log.d("Pratibha","Values are:"+sharefirstlevel.Actualvalues[i]);
actual=solo.searchText(sharefirstlevel.Actualvalues[i]);
assertEquals(expected, actual);
Log.d("TAG","Values are:"+sharefirstlevel.Actualvalues[i]);
}
因此我在B类中获取数组的值。因为索引从0开始,我在第0位没有任何文本值,它返回垃圾值。
感谢大家的回复。