我奋力追赶使用类在我的Android应用程序的测试案例预期例外ActivityInstrumentationTestCase2 。
我写的是提出这个问题非常简单的场景,而一旦这种解决我大概可以做同样的事情对我的应用程序。 在简单的场景的片断如下。
首先,是我要测试的应用程序,这引起了在其onCreate方法一个NullPointerException异常。
package com.example.crashtest;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String s = null;
s.trim(); // NullPointerException raised here!
setContentView(R.layout.activity_player);
}
}
然后,还有就是运行这个测试我ActivityInstrumentationTestCase2类:
package com.my.test;
import android.test.ActivityInstrumentationTestCase2;
import com.example.crashtest.MainActivity;
public class MyClassTest extends ActivityInstrumentationTestCase2<MainActivity>{
public MyClassTest() throws ClassNotFoundException {
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
//setUp() is run before a test case is started.
super.setUp();
try {
getActivity(); // This calls MainActivity.onCreate().
} catch (Exception e) {
// Never gets here =(
}
}
public void test() throws Exception {
}
}
如果我删除调用s.trim()
那我也没问题,但我希望能够赶上执行测试时,我可能会发现任何异常。
当我执行上面的代码我收到以下消息:
Test failed to run to completion. Reason: 'Instrumentation
run failed due to 'java.lang.NullPointerException''. Check device logcat for details
我怎么可以重写这样的行为?
我发现了一个非常类似的问题在这里从2013年开始这是不被应答。