我可以单独测试活动和碎片的生命周期方法吗?

时间:2017-02-10 10:31:39

标签: android android-fragments android-activity android-espresso android-testing

我正在使用以下库测试Android应用程序:

androidTestCompile 'org.mockito:mockito-core:1.10.19'
androidTestCompile 'junit:junit:4.12'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2'
androidTestCompile 'com.android.support.test.espresso:espresso-intents:2.2.2'

我想现在,如果我能以某种方式单独测试onCreate() - ,onStart() - 和onResume() - 方法。那么可以在某个测试用例中调用其中一种方法而不调用其他方法吗?

为什么我要这样做?在我的Activity我在Fragment中创建onCreate()并将其应用于Activity。但是在片段中的onResume()中,我设置了一些内容,导致另一个Fragment替换了附加到Activity的{​​{1}}。我想测试是否加载了第一个片段。但是在我的测试用例Fragment已被触发并且第一个片段被替换。这就是我想分别测试onResume()的原因。

1 个答案:

答案 0 :(得分:-2)

package com.example.activity;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;


public class DemoActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.e("Method" , "On Create");


    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.e("Method" , "On start");
    }

    @Override
    protected void onRestart() {
        super.onRestart();
        Log.e("Method" , "On restart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.e("Method" , "On resume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.e("Method" , "On pause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.e("Method" , "On stop");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.e("Method" , "On destroy");
    }
}