我试图用 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"
我猜 EditText 没有设置。我试过有无TextView.BufferType.EDITABLE
,但没有区别。
有人可以告诉我我做错了什么吗?我很确定它非常简单,但我只是无法看到它是什么:(