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查找添加依蘭庫,如下圖