1、基於App試用
新建一個app,執行簡單的加法運算,代碼中故意留下錯誤代碼使a+b=ab.
2、在AndroidTest路徑下,新建Test Class類
引入包名:
package com.example.myapplication;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.rule.ActivityTestRule; //注意此處引入包名,百度查了好久,都沒有找到,最後通過添加依蘭庫自動引入
import com.robotium.solo.Solo;
import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.assertEquals;
@RunWith(AndroidJUnit4.class)
public class TestFirst{
private Solo solo;
@Rule
public ActivityTestRule<MainActivity> activityTestRule =
new ActivityTestRule<>(MainActivity.class);
@Before
public void setUp() throws Exception {
solo = new Solo(InstrumentationRegistry.getInstrumentation(),
activityTestRule.getActivity());
}
@Test
public void testRun() {
EditText num1Et = (EditText) solo.getView(R.id.num1_et);
EditText num2Et = (EditText) solo.getView(R.id.num2_et);
Button resultBtn = (Button) solo.getView(R.id.get_result_btn);
TextView resultTv = (TextView) solo.getView(R.id.result_tv);
solo.enterText(num1Et,"1");
solo.enterText(num2Et,"2");
solo.clickOnView(resultBtn);
solo.sleep(200);
assertEquals("= 3",resultTv.getText().toString());
}
@After
public void tearDown() throws Exception {
solo.finishOpenedActivities();
}
}
3、依蘭庫的添加注意:
androidTestImplementation 'com.jayway.android.robotium:robotium-solo:5.6.3'
androidTestImplementation 'com.android.support.test:rules:1.0.2' //注意此處,是rules,百度查找很多資料都是rule,需要添加rules才能Syn成功!
4、通過Project Structure dialog查找添加依蘭庫,如下圖