作为从事测试驱动开发的新手,我经常对如何将测试持久性单元化到数据库感到困惑。
我知道从技术上讲这将是一个集成测试(而不是单元测试),但是我想找到以下最佳策略:
做这些的最佳实践是什么?
关于测试SQL:我知道可以做到这一点,但是如果我使用像NHibernate这样的O / R映射器,它会在用于输出查询的别名中附加一些命名疣,因为这有点不可预测,我不确定我可以测试一下。
我应该放弃所有内容,只是信任NHibernate吗?我不确定这是谨慎的做法。
但是我怎么知道查询没错呢?测试更新和删除-与测试插入内容相同**---编写数据对比插件**
它会在用于输出查询的别名中附加一些命名疣**---你考虑的方向错了,应该是从数据注入开始想,另外你如果是希望通过SQL去解决你现在的问题,可以进行数据双重\多重验证**
我应该放弃所有内容,只是信任NHibernate吗?---实际证明优化工作逻辑是一个很大的难点,我的意见是只做参考,而不能够全信
查看数据库单元。它是一个Java库,但是必须有一个C#等效项。它使您可以使用一组数据来准备数据库,以便了解数据库中的内容,然后可以与DB Unit交互以查看数据库中的内容。它可以在许多数据库系统上运行,因此您可以使用实际的数据库设置,也可以使用其他方式,例如Java中的HSQL(带有内存中选项的Java数据库实现)。
如果要测试代码是否正确使用了数据库(很可能应该这样做),则这是隔离每个测试并确保数据库已准备好预期数据的方法。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。