2010-10-01 41 views
0

我想知道测试数据访问功能的最佳方式。
我知道有可能创建mock来更改用于测试业务逻辑的数据层对象。
但是有可能测试对数据库的sql查询是否正确。
数据访问(sql查询)功能测试

情景:方法必须返回上个月申请工作的员工。
我可以返回对象列表并检查每个员工的startDate属性是否正确(上个月)。
因此,如果它返回3名员工,并且他们有正确的startDate值,但数据库中还有两名员工没有返回。如何为这种情况编写测试? :)

在此先感谢。

回答

1

您设置了测试数据库,以便您了解其中包含的数据。如果您希望从查询中返回5名员工,并且只获得3名员工,则知道存在错误。

您可以测试不同的设置查询:空表,只把新员工,只有老员工,两者的混合(特别小心的模棱两可的案件)等

+0

哦,所以对于这种类型的测试,我需要使用测试数据库,这将是更多的工作来同步数据库结构与真正的数据库,但我认为它是值得的。感谢您的快速回答! :) – Danil 2010-10-01 20:07:26

1

我不认为您需要检查数据库中未返回的其他两名员工。

关键是,在设置测试数据时,您需要确保您有足够的记录,不符合匹配条件(除了匹配的记录之外),然后运行提取并请确保您取回做的符合条件的正确记录数。

以这种方式准备测试数据可确保您的方法返回预期结果。