Instrumentation 是Android studio自帶的測(cè)試框架,可使用它進(jìn)行Android應(yīng)用的單元測(cè)試和自動(dòng)化測(cè)試。
Instrumentation則是針對(duì)Android系統(tǒng)的JUnit擴(kuò)展舵盈。也就是說對(duì)于不涉及Android組件的項(xiàng)目,可直接通過JUnit進(jìn)行單元測(cè)試,而對(duì)于調(diào)用了Android組件的項(xiàng)目可通過Instrumentation進(jìn)行單元測(cè)試或自動(dòng)化測(cè)試。
下文只是使用的簡單示例侮腹。
- 1 使用AndroidStudio創(chuàng)建一個(gè)新項(xiàng)目,示例為TestAppDemo
- 2 檢查Module下的build.gradle下是否配置如下
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- 3 在MainActivity#onCreate編寫如下示例代碼:
textView =findViewById(R.id.text_view);
button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.setText("Hello android!");
}
});
- 4 在android Test目錄下編寫下面測(cè)試代碼
//MainActivity 要注意名字一致稻励。
public class MainActivityTest extends ActivityInstrumentationTestCase2<MainActivity> {
private Button button;
private TextView textView;
private Activity mainActivity;
public MainActivityTest(){
super(MainActivity.class);
}
@Override
protected void setUp() throws Exception {
super.setUp();
mainActivity=getActivity();
//id名字注意與xml一致
textView = mainActivity.findViewById(R.id.text_view);
button = mainActivity.findViewById(R.id.button);
}
public void testInit(){
assertEquals("222", textView.getText().toString());
}
public void testButtonClick() throws Exception{
mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
button.performClick();
}
});
Thread.sleep(1000);
assertEquals("Hello android!",textView.getText().toString());
}
}
-
5 在MainActivityTest 右鍵run .正常會(huì)出現(xiàn)類似下圖結(jié)果
運(yùn)行結(jié)果.png
參考文章
https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests