我想知道测试数据访问功能的最佳方法。
我知道可以创建模拟来更改用于测试业务逻辑的数据层对象
但是,是否可以测试对数据库的sql查询是否正确。
场景:方法必须归还上个月申请工作的员工 我可以返回对象列表并检查每个员工的startDate属性是否正确(上个月) 因此,如果它返回3个员工并且他们具有正确的startDate值,但是在数据库中有更多的两个员工没有返回。如何为该案件编写测试? :)
提前致谢。
答案 0 :(得分:1)
您可以设置测试数据库,以便了解其中的数据。如果您希望从查询中返回5名员工,而您只获得3名员工,则表示存在错误。
您可以使用不同的设置测试查询:空表,只有新员工,只有旧员工,两者的混合(特别注意边缘情况)等。
答案 1 :(得分:1)
我认为您不需要检查数据库中未返回的其他两名员工。
关键是,在设置测试数据时,您需要确保有足够的记录不符合条件(除了匹配的记录),然后你运行提取并确保您返回执行符合条件的正确记录数。
以这种方式准备测试数据可确保您的方法返回预期结果。