将字符串数组传递给Robotium类

时间:2013-08-20 11:52:29

标签: android robotium android-testing

我使用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]);
        }
    }
}

但事情是在代码的第一部分正确的值被提取到数组。 在我传递数组值的代码的第二部分中,我没有得到值而是内存分配对象。因此,测试用例失败了。

请帮帮我。我正在修复!!

2 个答案:

答案 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位没有任何文本值,它返回垃圾值。

感谢大家的回复。