Java 如何对我的主要活动进行单元测试?

Java 如何对我的主要活动进行单元测试?,java,android,unit-testing,dependency-injection,Java,Android,Unit Testing,Dependency Injection,据我所知,单元测试更多的是关于编写实际可测试的代码,而不是编写实际的测试 为了编写可测试代码,至少在java这样的语言中,我应该使用依赖注入,对吗?我目前正在编写的应用程序不使用任何DI 但我想先为我的主要活动编写单元测试,如下所示: public class MainActivity extends AppCompatActivity implements View.OnClickListener{ private ImageButton buttonPlay; @Over

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

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

但我想先为我的主要活动编写单元测试,如下所示:

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()等?因为我甚至不确定我将为这些方法断言什么。

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

似乎谷歌的文档推荐mockito(可能有什么不同?),但我只是不确定我是否应该测试这些方法?不,先生,你不需要测试这些方法,尽管你可能想测试当你点击按钮时会发生什么。您可以使用Espresso单元测试来测试此场景,但如果我不应该直接测试诸如setRequestedOrientation()之类的本机方法,那么如何确认其设置为正确的方向?我是不是用我自己的方法做的?