Android Studio - Junit 4 - 在所有测试之前运行代码

问题描述

我有一个应用程序,每当打开该应用程序时,我想强制执行 locale。所以我将在应用程序的 Locale.setDefault(myCountryLocale). 方法中使用 onCreate()

单元测试不会启动该类,因此我希望能够在启动测试时设置相同的语言环境。通过扩展程序或 gradle 脚本来设置语言环境,以便在运行它们的人使用其他语言环境时测试不会失败。

解决方法

您可以使用 JUnit 的 TestSuite 来实现这一点。

package com.dinkar.test.sample;
import com.dinkar.test.sample.TestA;
import com.dinkar.test.sample.TestB;
import com.dinkar.test.sample.TestC;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

import java.util.Locale;

/**
 * @author dinkark on 29/04/20.
 * 
 */
@RunWith(Suite.class)
@SuiteClasses({TestA.class,TestB.class,TestC.class})
public class TestSuite {

    @BeforeClass
    public static void setUp() {
        System.out.println("set config required by all the test cases");
        System.out.println("This will only run once for all the test case included in TestA,TestB,TestC");
        Locale.setDefault(myCountryLocale);// set your locale
    }

    @AfterClass
    public static void tearDown() {
        System.out.println("clean up");
        System.out.println("This will also run once only for all the test case included in TestA,TestC");
    
    }

}