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

robotium 試用問題解決記錄

 

相关文章: