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类中寻找调用该方法的代码。我知道这是一个非常简单的问题,但我真的被它卡住了。