如何解决Android上的领域单元测试
我正在尝试对Realm进行单元测试,但是我只能停留在一点。
这是我在ViewModel中的方法
public void getUserList(RealmResults<User> userRealmResults) {
RealmResults<User> users1 = userRealmResults.where().equalTo("dept","Finance").findAll();
RealmResults<User> users2 = userRealmResults.where().equalTo("dept","HR").findAll();
}
getUserList()的单元测试用例
private MainVm mainVm;
@Before
public void setup() {
super.setup();
mainVm= new MainVm((Application) RuntimeEnvironment.application.getApplicationContext());
}
@Test
public void getUserListTest() {
RealmQuery<User> userRealmQuery = MockSupport.mockRealmQuery();
RealmResults<User> userRealmResults = MockSupport.mockRealmResults();
when(mockRealm.where(User.class)).thenReturn(userRealmQuery);
when(userRealmQuery.findAll()).thenReturn(userRealmResults);
List<User>userList=new ArrayList<>();
User user1 = new User();
user1.setId("1");
user1.setName("Happy");
user1.setDept("Finance");
User user2 = new User();
user2.setId("2");
user2.setName("Govind");
user2.setDept("Finance");
User user3 = new User();
user3.setId("3");
user3.setName("Gopal");
user3.setDept("HR");
userList.add(user1);
userList.add(user2);
userList.add(user3);
when(userRealmResults.iterator()).thenReturn(userList.iterator());
when(userRealmResults.size()).thenReturn(userList.size());
when(userRealmResults.get(0)).thenReturn(userList.get(0));
when(userRealmResults.get(1)).thenReturn(userList.get(1));
when(userRealmResults.get(2)).thenReturn(userList.get(2));
RealmQuery<User> userRealmQuery1 = MockSupport.mockRealmQuery();
RealmResults<User> userRealmResults1 = MockSupport.mockRealmResults();
when(userRealmResults.where()).thenReturn(userRealmQuery1);
when(userRealmQuery1.equalTo("dept","Finance")).thenReturn(userRealmQuery1);
when(userRealmQuery1.findAll()).thenReturn(userRealmResults1);
RealmQuery<User> userRealmQuery2 = MockSupport.mockRealmQuery();
RealmResults<User> userRealmResults2 = MockSupport.mockRealmResults();
when(userRealmResults.where()).thenReturn(userRealmQuery2);
when(userRealmQuery2.equalTo("dept","HR")).thenReturn(userRealmQuery2);
when(userRealmQuery2.findAll()).thenReturn(userRealmResults2);
mainVm.getUserList(userRealmResults);
}
运行测试后,它将为getUserList()方法中的第二个查询提供 NullPointerException 。 在测试getUserList()方法时,我在这里做错什么了吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。