在setup()中不更改变量的值

时间:2014-10-14 08:48:31

标签: java junit android-testing

我正在为我的应用程序开发一个测试类。我有3个测试,基于测试方法,我想有不同的设置。这是我的代码的样子:

`public class MainActivityTest extends
        ActivityInstrumentationTestCase2<MainActivity> {

    int counter = 0;

    public MainActivityTest(Class<MainActivity> name) {
        super(name);

    }

    public MainActivityTest() {
        super(MainActivity.class);
    }

    protected void setUp() throws Exception {
        super.setUp();
        switch (counter) {
        case 0:
            //do setup 1
            break;
        case 1:
            //do setup 2
            break;
        case 2:
            //do setup 3
            break;
        default:
            break;
        }
        counter++;
    }

    public void testTest1() {
        //do test 1
        assertEquals(1, counter);
    }

    public void testTest2() {
        //do test 2
        assertEquals(2, counter);
    }

    public void testTest3() {
        //do test 3
        assertEquals(3, counter);

    }

    protected void tearDown() throws Exception {
        super.tearDown();
    }`


如文献中所述,每次测试都会调用设置方法。问题是testTest2和testTest3失败,因为两者的计数器值都是1。我想每次调用设置时都会增加。

1 个答案:

答案 0 :(得分:0)

如果您使计数器变量为静态,则测试将通过。

每个测试都有自己的测试类实例,因此每次测试都会将计数器值重新初始化为起始值为零。