Espresso测试失败:想要匹配1个意图,实际匹配2个意图

时间:2015-12-24 06:57:16

标签: android android-espresso android-testing

我在使用espresso测试活动启动时收到此错误。

android.support.test.espresso.base.DefaultFailureHandler $ AssertionFailedWithCauseError:想要匹配1个意图。实际上匹配2个意图。

令人惊讶的是,其他具有相同代码的活动启动测试正在通过。

import java.util.Scanner;
public class stringtoint {

    public static void main (String args[]) {
        Scanner in=new Scanner(System.in);
        String number[]=new String[100];
        int sum=0;
        for(x=0;x<=1;x++)
        {
            System.out.print("input number : ");number[x]=in.next();
            int value[x]= Integer.parseInt(number[x]); // i found "expected here", what should i do, need help, please..
            sum=sum+number[x];
        }

        for(x=0;x<=1;x++)
        {
            System.out.println("Data Number "+(x+1)+" : "+number[x]);   
        }
            System.out.println("Sum :\t "+sum); 
    }
}

按钮单击只需使用startActivity启动FundTransfer活动。

1 个答案:

答案 0 :(得分:12)

你能粘贴你得到的完整错误信息吗?

错误消息也将匹配2个Intent的配置。如果这两个意图具有相同的配置,则意味着您正在调用startActivity两次,即在测试开始和测试结束之间。 以下答案适用于您最终两次调用相同Intent的特定情况。

两次通话是完全合法的案例。例如,

第1步:点按Button1以启动图库并选择图片并在ImageView1显示(最初ImageView1GONE,现在它是VISIBLE)。
第2步:点按ImageView1再次启动图库。

现在,如果你想测试&#34;点击ImageView1应该启动图库&#34;,那么你就不能点击ImageView1,因为它不是最初可见。您需要先点按Button1。如果您这样做,则需要启动图库两次

因此intended(hasComponent("mypackage.FundTransferActivity"));无法工作。请改为使用: intended(hasComponent("mypackage.FundTransferActivity"), times(2));