开发者社区> 问答> 正文

如何对持久性进行单元测试?

作为从事测试驱动开发的新手,我经常对如何将测试持久性单元化到数据库感到困惑。

我知道从技术上讲这将是一个集成测试(而不是单元测试),但是我想找到以下最佳策略:

  1. 测试查询。 测试插件。我如何知道插入失败的插入错误?我可以通过插入然后查询来测试它,但是我怎么知道查询没错呢? 测试更新和删除-与测试插入内容相同

做这些的最佳实践是什么?

关于测试SQL:我知道可以做到这一点,但是如果我使用像NHibernate这样的O / R映射器,它会在用于输出查询的别名中附加一些命名疣,因为这有点不可预测,我不确定我可以测试一下。

我应该放弃所有内容,只是信任NHibernate吗?我不确定这是谨慎的做法。

展开
收起
心有灵_夕 2019-12-24 21:59:17 990 0
2 条回答
写回答
取消 提交回答
  • 但是我怎么知道查询没错呢?测试更新和删除-与测试插入内容相同**---编写数据对比插件**

    它会在用于输出查询的别名中附加一些命名疣**---你考虑的方向错了,应该是从数据注入开始想,另外你如果是希望通过SQL去解决你现在的问题,可以进行数据双重\多重验证**

    我应该放弃所有内容,只是信任NHibernate吗?---实际证明优化工作逻辑是一个很大的难点,我的意见是只做参考,而不能够全信

    2020-01-03 14:40:22
    赞同 展开评论 打赏
  • 查看数据库单元。它是一个Java库,但是必须有一个C#等效项。它使您可以使用一组数据来准备数据库,以便了解数据库中的内容,然后可以与DB Unit交互以查看数据库中的内容。它可以在许多数据库系统上运行,因此您可以使用实际的数据库设置,也可以使用其他方式,例如Java中的HSQL(带有内存中选项的Java数据库实现)。

    如果要测试代码是否正确使用了数据库(很可能应该这样做),则这是隔离每个测试并确保数据库已准备好预期数据的方法。

    2019-12-24 21:59:37
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载