android 测试 mock,Android 开发 单元测试 (Mock)

Android 开发 单元测试 (Mock)

上一篇文章中说了JUnit4的作为单元测试的情况下去测试java代码的基本用法, 主要讲到了一些用在有返回值的方法,那么这章, 来介绍怎么测试返回值类型为void的代码的如何测试

假设有这样一段代码

public void loginApp(String name, String password){

if (name == null || name.length() == 0) return;

if (password == null || password.length() < 6) return;

ligon(name, password, new NetworkCallback() {

@Override

public void onSuccess(String msg) {

}

@Override

public void onFailure(String msg) {

}

});

}

public void ligon(String name, String password,NetworkCallback networkCallback){

user.setName(name);

user.setPassword(password);

if (name.equals("TaioPi") && password.equals("123456")) {

networkCallback.onSuccess("OK");

}else {

networkCallback.onFailure("FAIL");

}

}

怎么办

使用Mock(模拟对象)

Mock: Mock的概念,其实很简单, 所谓的mock就是创建一个类的虚假的对象,在测试环境中,用来替换掉真实的对象

结果

用来验证这个对象的某些方法的调用情况,调用了多少次,参数是什么等,

指定这个对象的某些方法的行为,返回特定的值,或者是执行特定的动作

Mock框架 : Mockito

首先还是Mockito 使用的步骤

先导包

testCompile "org.mockito:mockito-core:+"

androidTestCompile "org.mockito:mockito-android:+"

模拟并替换测试代码中外部依赖

执行测试代码

验证测试代码是否被正确的执行

简单实用Mockito

我们这里使用 2.x 来介绍 ,跟刚上一篇一样, 我们这里先把 Mockito的主要功能先列出来, 之后再进行实例使用

1.验证某些行为

一旦mock对象被创建了,mock对象会记住所有的交互。然后你就选择性的验证交互。

// mock creation 创建mock对象

MockotiTestBean mockotiTestBean = mock(MockotiTestBean.class);

//using mock object 使用mock对象

mockotiTestBean.setMockName("TaioPi");

mockotiTestBean.setMockAge("26");

//verification 验证

verify(mockotiTestBean).setMockName("TaioPi");

verify(mockotiTestBean).setMockAge("26");

2.测试桩 Stub

先说一下概念 : Stub完全是模拟一个外部依赖,用来提供测试时所需要的测试数据。

// 你可以mock具体的类型,不仅只是接口

// mockotiTestBean = mock(MockotiTestBean.class);

// stubbing 测试桩

你可能感兴趣的:(android,测试,mock)