4

我认为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 
4

2 回答 2

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  ");
}
于 2013-02-11T09:38:50.820 回答
0

我想这是JUnit3。每次测试后都会运行 tearDown。您的测试文件中有任何测试吗?JUnit 将只运行当前类中定义的测试。

于 2013-02-11T09:39:48.470 回答