Java 如何测试从数据库返回给定类型的所有实体的方法?
在我的Java 如何测试从数据库返回给定类型的所有实体的方法?,java,sql,Java,Sql,在我的EmployeeDAO类中有一个方法getAll,它获取数据库中的所有员工并返回一个列表。如何测试此方法 public java.util.List<Employee> getAll() throws DataException; public java.util.List getAll()抛出DataException; 假设您使用的是junit,安装程序(内存中的数据库),请使用所需的表和数据加载它。然后运行测试并检查是否返回了正确的数据。 请注意,如果您正在使用大量存储
EmployeeDAO
类中有一个方法getAll
,它获取数据库中的所有员工并返回一个列表。如何测试此方法
public java.util.List<Employee> getAll() throws DataException;
public java.util.List getAll()抛出DataException;
假设您使用的是junit,安装程序(内存中的数据库),请使用所需的表和数据加载它。然后运行测试并检查是否返回了正确的数据。
请注意,如果您正在使用大量存储过程和db供应商特定的东西,这种方法将不起作用。这是我提出的代码:
//test the search method
EmployeeDAO testDAO = EmployeeDAO.getInstance();
List<Employee> testList = testDAO.getAll();
System.out.println(testList.size());
//测试搜索方法
EmployeeDAO testDAO=EmployeeDAO.getInstance();
List testList=testDAO.getAll();
System.out.println(testList.size());
谢谢你的帮助 使用great(看,他们的Hello World示例还测试了员工列表…)库,您可以编写:
asseertThat(testList)
.hasSize(2)
.containsExactly(employee1, employee2);
此代码的唯一问题是必须手动创建employee1
和employee2
实例,并确保它们具有正确的equals()
方法。可能不那么详细,更直接的方法如下:
asseertThat(testList)
.hasSize(2)
assertThat(testList.get(0).getEmployeeName())
.isEqualTo("John");
assertThat(testList.get(1).getEmployeeName())
.isEqualTo("Alice");
在这两种情况下,您都必须注意返回集合中项目的顺序。由于您返回的是列表
,DAO的用户可能会认为顺序不是随机的(按id
?)请修改您的标题以涵盖具体问题。1)标题不好2)没有问题3)代码太多。如果您认为这是一个简单的问题,为什么要问它?提示:这对你来说应该比我们容易。你知道密码应该是什么吗doing@Eric当前位置我编辑了您的问题,试图在没有所有代码的情况下捕捉其意图。如果我错了,请纠正我。我仍然相信更多的信息会有所帮助。例如,您可以解释您认为可以工作但没有工作的内容。我已经有了一个derby db设置。我只是在我的tester类中寻找调用该方法的代码。我知道这是一个非常简单的问题,但我真的被它卡住了。