在Spring Data中,我找到了非常有用的JpaRepository接口。因为我需要更多功能,所以我决定创建自己的存储库接口:
public interface BaseRepository<T, ID extends Serializable>
extends JpaRepository<T, ID> {
public <TA, TV> int deleteBy(SingularAttribute<T, TA> attr, TV val);
}
如您所见,这是一个通用界面。它工作正常,但我想知道如何测试它?当然,我可以为每个具体的存储库编写集成测试,但我正在寻找更好的方法。
答案 0 :(得分:0)
与测试一样,您应该确保知道自己正在测试什么。找到这些问题的答案:
做#1是没用的:数据库供应商已经在其产品上运行了数千次测试。很少有理由再次这样做。
除非您怀疑Spring Data的代码中存在错误,否则执行#2是没用的。
这让我们留下#3。使用模拟框架来确保在适当的位置调用该方法(也可以检查参数)。
这样,您可以确保您的代码正常运行。
如果您发现框架丢失错误或者您发现对象未被正确删除,则可以添加更多测试。但大多数情况下,由于数据库或Spring Data中的错误,这种情况不会发生。相反,您的代码不会调用deleteBy()
,否则它将使用错误的参数调用该方法。