我目前正在尝试活动测试教程(在这里找到),并且遇到了问题.似乎每当我尝试在UIThread中调用某些东西时,我都会得到一个java.lang.NullPointerException.
public void testSpinnerUI() {
mActivity.runOnUiThread( new Runnable() {
public void run() {
mSpinner.requestFocus();
}
});
}
Run Code Online (Sandbox Code Playgroud)
这给了我:
不完整:java.lang.NullPointerException
没有别的.我现在在两个不同的样品上尝试了这个,结果相同.我试着围绕mSpinner.requestFocus()调用使用try/catch子句,似乎mSpinner在线程内是null.我已经使用在同一个示例中找到的setUp()函数正确设置了它,并且快速assertNotNull(mSpinner)向我显示在setUp()函数之后mSpinner实际上不是null.这可能是什么原因?
编辑; 好的,已经完成了一些测试.似乎正在测试的应用程序在每个测试之间重置.这基本上使我必须在每次测试之间重新实例化所有变量.这是正常的吗?
好的,所以看来我现在就开始工作了.至少到某一点.我仍然无法在runOnUiThread()中运行任何东西,但我发现使用@UiThreadTest注释给了我满意的结果.我不再获得NullPointerExceptions,并且setUp()方法甚至可以正确运行.我不知道是什么导致了这个,但是,嘿,至少它正在工作:)