最近使用 AndroidStudio 的时候想要使用单元测试 因为有一些数据需要 Activity 的支持, 从网上找了一些教程,但自己使用时感觉不理想,发现都是一些业务逻辑的类,很少有直接针对 Activity 的单元测试 所以想自己写一个简单的 demo

开发环境

Android Studio 2.2

步骤

首先新建工程 然后会自动生成 MainActivity

MainActivity 代码如下

public class MainActivity extends AppCompatActivity {

    // Used to load the 'native-lib' library on application startup.
    static {
        System.loadLibrary("kikt-camera");
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Example of a call to a native method
        TextView tv = (TextView) findViewById(R.id.sample_text);
        tv.setText(stringFromJNI());
    }

    /**
     * A native method that is implemented by the 'native-lib' native library,
     * which is packaged with this application.
     */
    public native String stringFromJNI();

    public void showTest() {
        Log.d("MainActivity", stringFromJNI());
    }
}

github 这里直接创建 Test 文件 图片 点 ok 后 会生成一个文件

我在这里对代码进行了修改 修改如下

@RunWith(JUnit4.class)
public class MainActivityTest {

    @Rule
    public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class);

    @Test
    public void stringFromJNI() throws Exception {
        MainActivity activity = rule.getActivity();
        TextView textView = (TextView) activity.findViewById(R.id.sample_text);
        String s = textView.getText().toString();
        Log.d("MainActivityTest", s);
        Log.d("MainActivityTest", activity.stringFromJNI());
    }

}

这里通过 rule.getActivity()可以直接拿到 Activity 对象 可以获取到 View 对象 接着就可以将测试的相关所有逻辑写在里面了

这里可以直接点击运行 test 了 图片

图片

我这里只是做了几个日志输出,可以从 Android monitor 里面看到日志输出 图片

后记

demo 比较简单,没有什么多余的东西,仅做参考