Goog下午,
如果列表中包含该项,当我放置新项时,我会通过数据库进行搜索以对特定的类Test进行测试。
@Test
public void insertAndDeleteTask() throws InterruptedException {
Project projectTartampion = new Project(1L, "Projet Tartampion", 0xFFEADAD1);
long projectID1L = projectDao.inserProject(projectTartampion);
Task task1L = new Task(1,projectID1L,"Test",3);
taskDao.insertTask(task1L);
List<Project> allProjects = LiveDataTestUtil.getValue(projectDao.getAllProjects());
assertNotNull(allProjects);
assertFalse(allProjects.isEmpty());
List<Task> allTasks = LiveDataTestUtil.getValue(taskDao.getAllTasks());
assertNotNull(allTasks);
assertFalse(allTasks.isEmpty());
Log.i("TAG","***********************************"+LiveDataTestUtil.getValue(taskDao.getAllTasks()));
assertThat(allTasks, contains(task1L));//HERE TO TEST IF allTasks contains task1L/////
日志测试错误结果:
iterable containing info Task{id=1, projectId=1, name='Test', creationTimestamp=3}
but: item 0: was Task{id=1, projectId=1, name='Test', creationTimestamp=3}
但是我不完全了解发生了什么,因为当我使用Log.i来查看我的物品是否在列表中时,它就打开了。
感谢您的回答
答案 0 :(得分:0)
确切的错误消息是:
Expected: iterable containing [<Task{id=1, projectId=1, name='Test', creationTimestamp=3}>]
but: item 0: was <Task{id=1, projectId=1, name='Test', creationTimestamp=3}>
谢谢
答案 1 :(得分:0)
我发现了问题,我迷失了创建并转移到新的MutableLiveData,如下所示,
MutableLiveData<List<Task>> listLiveData = new MutableLiveData<>();
listLiveData.setValue(allTasks);
assertEquals(listLiveData.getValue().get(0).getName(), task2L.getName());
assertEquals(listLiveData.getValue().get(1).getName(), task1L.getName());
现在可以进行测试了。