Android单元测试如何只运行一次方法

时间:2015-10-22 19:00:06

标签: android junit crashlytics

我有一个名为myApplication的Application的子类,我有一个方法来设置crashlytics。但是在我的单元测试中,每次运行测试时都会重新启动一个新的应用程序,然后它会尝试再次设置crashlytics,然后最终我只是出现内存异常。我如何强制一个方法只执行一次,因为它在Application中是应用程序的基础。

我的子类,如有必要,看起来像这样:

public class MyApplication extends Application {

@Override
public void onCreate() {
    super.onCreate();
setupCrashlytics();
}


/**
 * sets up Crashlytics.
 */
private void setupCrashlytics() {

        Crashlytics.Builder crashlytics= new Crashlytics.Builder();
        Fabric.Builder fabric= new Fabric.Builder(this);


        fabricBuilder.kits(crashlytics.build());
        Fabric.with(fabric.build());
    }
}

1 个答案:

答案 0 :(得分:0)

我假设您正在运行检测测试,这取决于您在Application子类中应用的配置。 虽然测试应该在尽可能接近生产的环境中运行,但是您可以通过公开MyApplication.setIsTestEnvironment()方法并使用该标志来启用/禁用第三方依赖项来区分测试环境

或者,某些测试库(即 Mockito )允许您完全或部分模拟对象。您可以这样做,以防止您的真正的Application类在测试时初始化不需要的依赖项。

相关问题