我正在使用 Robolectric 在 Android 应用程序上执行单元测试。
问题很简单:我可以使用 findViewById 获取我的 Button,但是调用 performClick()
方法或 Robolectric.clickOn()
将返回 false。
但是按钮工作完美,通过应用程序或 Robotium 单元测试进行了测试...
这里是没有通过的测试代码:
@RunWith(RobolectricTestRunner.class)
public class RegisterActivityTest {
private MainActivity mainActivity;
private LoginActivity loginActivity;
@Before
public void setUp(){
mainActivity=new MainActivity();
mainActivity.onCreate(null);
mainActivity.setContentView(R.layout.main);
}
@Test
public void testButton() throws Exception {
Button buttonPayment=(Button)mainActivity.findViewById(R.id.btn_payment);
assertNotNull(buttonPayment); // will pass test ( ---> the view is a button and exists )
assertTrue(buttonPayment.performClick()); // raise AssertionError
assertTrue(Robolectric.clickOn(buttonPayment)); // raise AssertionError as well
}
}
谢谢大家
保罗
最佳答案
根据 the documentation for performClick() ,如果您为按钮分配了 OnClickListener,该方法将返回 true。
...是吗?
关于android - Robolectric : findViewById gives view, 但 performClick() 返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466556/