Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 机器人简单测试_Android_Robolectric - Fatal编程技术网

Android 机器人简单测试

Android 机器人简单测试,android,robolectric,Android,Robolectric,我试着用Robolectric测试一个非常简单的计算器应用程序 @Before public void setUp(){ mActivity = new MainActivity(); mActivity.onCreate(new Bundle()); et1 = (EditText) mActivity.findViewById(com.mamlambo.article.simplecalc.R.id.value1); et2 = (EditText) mAc

我试着用Robolectric测试一个非常简单的计算器应用程序

@Before
public void setUp(){
    mActivity = new MainActivity();
    mActivity.onCreate(new Bundle());

    et1 = (EditText) mActivity.findViewById(com.mamlambo.article.simplecalc.R.id.value1);
    et2 = (EditText) mActivity.findViewById(com.mamlambo.article.simplecalc.R.id.value2);

    btnAdd = (Button) mActivity.findViewById(com.mamlambo.article.simplecalc.R.id.addValues);
    btnMult = (Button) mActivity.findViewById(com.mamlambo.article.simplecalc.R.id.multiplyValues);

    result = (TextView) mActivity.findViewById(com.mamlambo.article.simplecalc.R.id.result);


}

@Test
public void test(){


    et1.setText("20");
    et2.setText("20");

    btnAdd.performClick();

    assertThat("40", equalTo(result.getText().toString()));
}
但是在运行测试之后,断言说

java.lang.AssertionError: 
Expected: ""
          got: "40"
我猜编辑文本没有设置好。我试过使用和不使用
TextView.BufferType.EDITABLE
都可以,但是没有什么区别


有人能告诉我我做错了什么吗?我很确定这是一个非常简单的问题,但我就是看不清它是什么:(

假设您使用的是Robolectric 2.x,并且已经用
@RunWith(RobolectrictTestRunner.class)
注释了您的测试类,如果您这样做:

mActivity = Robolectric.buildActivity(MainActivity.class).create().get();
而不是:

mActivity = new MainActivity();
mActivity.onCreate(new Bundle());

假设您使用的是Robolectric 2.x,并且已经用
@RunWith(RobolectrictTestRunner.class)
注释了您的测试类,那么如果您这样做:

mActivity = Robolectric.buildActivity(MainActivity.class).create().get();
而不是:

mActivity = new MainActivity();
mActivity.onCreate(new Bundle());
仍然一样:(我使用的是Robolectric 2.1,我用
@RunWith(RobolectrictTestRunner.class)
注释了这个类。我猜它与我在哪里以及如何设置
et1
et2
有关。仍然一样:(我使用的是Robolectric 2.1,我用
@RunWith注释了这个类)(RobolectrictTestRunner.class)
。我猜这与设置
et1
et2
的位置和方式有关。