我认为tearDown()
应该在每次测试后运行,但我从日志中看到的是它是在setUp()
方法之后启动的。你们能澄清一下吗?
public class LaunchManagerActivityTest extends ActivityInstrumentationTestCase2<LaunchManagerActivity> {
private Solo solo;
public LaunchManagerActivityTest() {
super(LaunchManagerActivity.class);
}
protected void setUp() throws Exception {
super.setUp();
Log.e("Dev", "setup");
solo = new Solo(getInstrumentation(), getActivity());
}
protected void tearDown() throws Exception {
super.tearDown();
Log.e("Dev", "tearDown ");
}
输出:
02-11 11:33:33.095: E/Dev(26779): setup
02-11 11:33:34.395: E/Dev(26779): tearDown
答案 0 :(得分:7)
您在发布的课程中没有测试,因此它只是运行设置然后拆解。这是预期的行为,如果你有任何测试它会运行:
constructor()
setUp();
testXXX();
tearDown();
如果你有两个测试它会运行
constructor()
setUp();
testXXX();
tearDown();
setUp();
testXXX2();
tearDown();
请记住junit 3中的测试(android使用)必须从单词test开始并且在同一个类中。
测试我所说的添加以下方法:
public void testXXX(){
Log.d("Dev", "testXXX ");
}
public void testXXX2(){
Log.d("Dev", "testXXX2 ");
}
答案 1 :(得分:0)
我想这是JUnit3。每次测试后,tearDown都会运行。你的测试文件中有测试吗? JUnit将只运行当前类中定义的测试..