【问题标题】:Unit Testing the Data Access Layer - Testing Update Methods?单元测试数据访问层 - 测试更新方法?
【发布时间】:2009-05-15 17:11:21
【问题描述】:

我正在考虑为我的数据访问层中的某些类添加一些单元测试,并且我正在查看一个没有返回值的更新例程。它只是根据您在您提供的任何列名称处提供的 id 更新一行。

在这个方法内部,我们收集参数并将它们传递给一个辅助例程,该例程调用存储过程来更新表。

在这种情况下如何进行单元测试有推荐的方法吗?我很难想出一个不依赖于其他方法的测试。

【问题讨论】:

    标签: sql vb.net unit-testing stored-procedures nunit


    【解决方案1】:

    首先测试从数据库中读取数据的方法。

    然后就可以调用更新函数,使用上面测试过的函数,验证更新的值是否正确。

    我倾向于在我的单元测试中使用其他方法,只要我有测试也可以测试那些被调用的方法。

    如果您的辅助函数在数据库中(存储过程或函数),那么只需先使用 DatabaseUnitTest 测试它们,然后测试 Visual Basic 代码。

    【讨论】:

      【解决方案2】:

      我将只使用查找方法来验证数据是否已正确更新。

      是的,从技术上讲,这将依赖于正常工作的查找方法,但我认为您不一定必须避免这种依赖性。只需确保也测试了查找方法。

      【讨论】:

        【解决方案3】:

        我将使用该方法获取该数据并检查您更新的返回值并断言预期值。这确实假设用于检索数据的方法已经过测试并且可以正常工作。

        【讨论】:

          【解决方案4】:

          我使用休眠和事务,对于单元测试,我不提交到数据库,但我刷新会话,如果需要,它会给出相同的错误,但不写入数据。

          当然,如果您有一个构建服务器,您只需针对一个新制作的数据库运行单元测试,该数据库在每次构建时都是新制作的。尝试使用基于文件的数据库,例如 firebird 之类的。

          【讨论】:

            猜你喜欢
            • 2013-02-06
            • 2013-07-04
            • 1970-01-01
            • 2015-07-13
            • 2015-11-27
            • 2011-02-16
            • 2011-01-23
            • 1970-01-01
            • 2011-10-24
            相关资源
            最近更新 更多