据我了解,单元测试更多的是编写实际上可测试的代码,而不是编写实际的测试。
为了编写可测试的代码,至少在像 java 这样的语言中,我可能应该使用依赖注入(inject),对吗?我当前正在编写的应用程序不使用任何 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() 等?因为我什至不确定我会对这些方法断言什么。
最佳答案
您可以使用本地单元测试(基于 JVM)或 Espresso 单元测试或两者都使用! 简而言之,通过本地单元测试,您可以测试调用函数(在模拟其依赖项(如果有)之后)是否会导致调用某个所需的函数。 通过 Espresso 单元测试,您可以测试应用程序的流程。 我会推荐this如果您想在 Android 中开始单元测试,请使用 Codelab。
关于java - 如何对我的 MainActivity 进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46142852/