2015-05-06 65 views
3

我想知道什麼是單元測試Android parcelable對象的最佳方式。我知道如何使用Parcel.obtain()測試可分區對象並將其寫入包並使用創建者創建它。這種方法的問題在於,如果某人將某個字段添加到對象而不將其添加到parcelable/equals/hashcode邏輯中,則不會捕獲該問題。是否存在確認將所有對象字段寫入宗地的庫或方法?我知道並不是所有的領域都應該被打包,我設想一個註釋或每個領域的東西來確定是否應該包含在單元測試中。如何正確單元測試可分析對象?

回答

0

您可以使用EqualsBuilder.reflectionEqualsApache Commons Lang

在你build.gradle

testCompile 'org.apache.commons:commons-lang3:3.4' 

然後,您可以指定哪些字段忽略或使其忽略transient領域

User one = new User(); 
one.setName("Salem") 
one.setLastName("Saberhagen"); 
one.setAddress("Somewhere"); 
one.setAge(1000); 

User two = one.clone(); 
two.setAddress("Mars"); 
two.setAge(2000); 

reflectionEquals(one, two); // -> False 
reflectionEquals(one, two, "address", "age"); // -> True