如何对MainActivity进行单元测试?

时间:2017-09-10 16:20:24

标签: java android unit-testing dependency-injection

据我所知,单元测试更多的是编写实际可测试的代码而不是编写实际测试代码。

为了编写可测试代码,至少在java这样的语言中,我应该使用依赖注入吗?我正在写的应用程序不使用任何DI。

但我想首先为MainActivity编写单元测试,如下所示:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{

    private ImageButton buttonPlay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //setting the orientation to landscape
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

        //Prevent screen from dimming when app is running
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

        //getting the button and adding click listener
        buttonPlay = (ImageButton) findViewById(R.id.buttonPlay);
        buttonPlay.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {

        //starting game activity
        startActivity(new Intent(this, GameActivity.class));
    }

}

我应该对每种方法进行测试吗?比如onCreate(),setContentView(),setRequestedOrientation()等?因为我甚至不确定我会为这些方法断言。

1 个答案:

答案 0 :(得分:1)

您可以使用本地单元测试(基于JVM)或Espresso单元测试,或两者兼而有之! 简单来说,从本地单元测试中,您可以测试调用函数(在模拟其依赖项之后是否存在)会导致调用某个所需函数。 通过Espresso单元测试,您可以测试应用程序的流程。 如果你想在Android中开始单元测试,我会推荐this codelab。