Android项目中的单元测试(Junit4)
我们将要编写一个简单的测试
被测试类:UserShare
测试类:UserShareTest
直接开始步骤吧
第一步: 在module层级build文件中添加依赖
androidTestCompile 'com.android.support:support-annotations:23.4.0'
androidTestCompile 'com.android.support.test:runner:0.5'
androidTestCompile 'com.android.support.test:rules:0.5'
我这里出现了冲突,因为appcompat的版本是v7:23.4.0’,test的版本号原来填写是24.0,所以我将test的版本降级为23.4(官网说明中的版本是24.0)
在as中新建User类
public class User {
String name;
int age ;
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@Override
public String toString() {
return new Gson().toJson(this);
}
public static User toObject(String str){
return new Gson().fromJson(str,User.class);
}
注意:这里用到了Gson,需要自己添加依赖
编写UserShare类
public class UserShare {
public void save(Context c , User user){
SharedPreferences sharedPreferences = c.getSharedPreferences("user" ,0);
SharedPreferences.Editor edit = sharedPreferences.edit();
edit.putString("user" , user.toString());
edit.commit();
}
public User get(Context c){
User user = null;
SharedPreferences sharedPreferences = c.getSharedPreferences("user" ,0);
String str = sharedPreferences.getString("user", null);
if (str!=null){
user = User.toObject(str);
}
return user;
}
在代码编辑器(UserShare类)中直接ctrl+t,会提示创建一个测试类,在这里附加上代码即可
public class UserShareTest {
UserShare userShare ;
User mUser;
Context context;
@Before
public void setUp() throws Exception {
context = InstrumentationRegistry.getTargetContext();
userShare = new UserShare();
mUser = new User();
mUser.setName("abcd");
mUser.setAge(12);
}
@Ignore
@Test
public void save() throws Exception {
}
@Test
public void get() throws Exception {
userShare.save(context,mUser);
User user2 = userShare.get(context);
assertEquals(user2.toString() , mUser.toString());
}
}
点击代码编辑器中的开始,没有问题的话会提示测试通过
说明一下:
@Before是测试开始前的方法,会在@test方法开始前执行
@Test是验证结果的方法
@After是测试结束执行的方法
@Ignore 如果这个方法不需要进行测试,那么标记@Ignore
OK,结束!