测试依赖于数据库数据的API的最佳实践是什么?在作为构建过程的一部分运行单元测试的"持续集成"环境中,我需要注意哪些问题?我的意思是你将数据库部署为构建脚本的一部分(可能运行安装程序),还是应该使用硬编码数据[使用XML进行MSTest数据驱动单元测试]?
我知道我可以模拟业务逻辑层的数据层但是如果我在DAL的SQL语句中遇到问题怎么办?我确实需要点击数据库,对吧?
嗯......这是一大堆问题:)...想法?
你应该尽可能地模拟代码以避免完全访问数据库,但在我看来你是否需要在线上的某个地方测试你的SQL.如果您确实编写了打到数据库的测试,那么避免令人头疼的一个关键提示是确保您的设置将数据转换为已知状态,而不是依赖于那些已经存在合适数据的数据.
当然,永远不要测试您的实时数据库!但这不用说:)
如上所述,使用模拟来模拟单元测试中的DB调用,除非您想无休止地调整测试和数据.测试sql语句意味着更多的集成测试.与单元测试分开运行,它们是2种不同的野兽.