Android 机器人简单测试
我试着用Robolectric测试一个非常简单的计算器应用程序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
@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
的位置和方式有关。