Android 单元测试之Roboletric的简单使用

来源:互联网 发布:南宁扶贫数据 编辑:程序博客网 时间:2024/05/16 19:33

Android 单元测试之Roboletric的简单使用

Android 单元测试之JUnit和Mockito
Android 单元测试之Roboletric 环境配置
Android 单元测试之Roboletric的简单使用
Android 单元测试之Roboletric RxJava、Retrofit、访问真实网络、虚拟服务器
Android 单元测试之Espresso - Google官方UI测试框架

最简单的使用

新建布局

<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent">    <Button        android:id="@+id/login"        android:text="Login"        android:layout_width="wrap_content"        android:layout_height="wrap_content"/></LinearLayout>

新建Activity

public class WelcomeActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.welcome_activity);        final View button = findViewById(R.id.login);        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                startActivity(new Intent(WelcomeActivity.this, LoginActivity.class));            }        });    }}  

新建测试

@RunWith(RobolectricTestRunner.class)@Config(constants = BuildConfig.class, sdk = 21)public class WelcomeActivityTest {    @Test    public void clickingLogin_shouldStartLoginActivity() {        WelcomeActivity activity = Robolectric.setupActivity(WelcomeActivity.class);        activity.findViewById(R.id.login).performClick();        Intent expectedIntent = new Intent(activity, LoginActivity.class);        assertIntent(expectedIntent,shadowOf(activity).getNextStartedActivity());    }}

由于robolectric:3.1.X在assetThat Intent时的bug导致比较不成功,故暂时使用该方法

public class AssertM {    /**     * 由于robolectric:3.1.X在assetThat时Intent时的bug导致比较不成功,故暂时使用该方法     *     * @param expected     * @param actual     */    public static void assertIntent(Intent expected, Intent actual) {        assertEquals(expected.toString(), actual.toString());    }}  

然后,运行,发现测试通过

其他

源码Demo

0 0
原创粉丝点击