单元测试数据访问层 - 测试更新方法?
Posted
技术标签:
【中文标题】单元测试数据访问层 - 测试更新方法?【英文标题】:Unit Testing the Data Access Layer - Testing Update Methods? 【发布时间】:2009-05-15 17:11:21 【问题描述】:我正在考虑为我的数据访问层中的某些类添加一些单元测试,并且我正在查看一个没有返回值的更新例程。它只是根据您在您提供的任何列名称处提供的 id 更新一行。
在这个方法内部,我们收集参数并将它们传递给一个辅助例程,该例程调用存储过程来更新表。
在这种情况下如何进行单元测试有推荐的方法吗?我很难想出一个不依赖于其他方法的测试。
【问题讨论】:
【参考方案1】:首先测试从数据库中读取数据的方法。
然后就可以调用更新函数,使用上面测试过的函数,验证更新的值是否正确。
我倾向于在我的单元测试中使用其他方法,只要我有测试也可以测试那些被调用的方法。
如果您的辅助函数在数据库中(存储过程或函数),那么只需先使用 DatabaseUnitTest 测试它们,然后测试 Visual Basic 代码。
【讨论】:
【参考方案2】:我将只使用查找方法来验证数据是否已正确更新。
是的,从技术上讲,这将依赖于正常工作的查找方法,但我认为您不一定必须避免这种依赖性。只需确保也测试了查找方法。
【讨论】:
【参考方案3】:我将使用该方法获取该数据并检查您更新的返回值并断言预期值。这确实假设用于检索数据的方法已经过测试并且可以正常工作。
【讨论】:
【参考方案4】:我使用休眠和事务,对于单元测试,我不提交到数据库,但我刷新会话,如果需要,它会给出相同的错误,但不写入数据。
当然,如果您有一个构建服务器,您只需针对一个新制作的数据库运行单元测试,该数据库在每次构建时都是新制作的。尝试使用基于文件的数据库,例如 firebird 之类的。
【讨论】:
以上是关于单元测试数据访问层 - 测试更新方法?的主要内容,如果未能解决你的问题,请参考以下文章