我正在考虑为我的数据访问层中的某些类添加一些单元测试,我正在查看一个没有返回值的更新例程。它只是根据您提供的ID提供的行更新一行。
在此方法的内部,我们收集参数并将它们传递给辅助例程,该例程调用存储过程来更新表。
在这种情况下,是否有推荐的方法来进行单元测试?我很难想到一个不依赖于其他方法的测试。
答案 0 :(得分:3)
首先测试从数据库中读取数据的方法。
然后,您可以调用更新函数,并使用上面测试的函数来验证更新的值是否正确。
我倾向于在单元测试中使用其他方法,只要我有测试也测试那些被调用的方法。
如果您的帮助函数在数据库(存储过程或函数)中,那么首先使用DatabaseUnitTest测试它们,然后测试可视化基本代码。
答案 1 :(得分:0)
我只想使用查找方法来验证数据是否已正确更新。
是的,从技术上讲,这将继续查找方法正常工作,但我认为你不一定要避免这种依赖。只需确保查找方法也已经过测试。
答案 2 :(得分:0)
我会使用该方法获取该数据并检查返回值以更新和断言期望值。这确实假设用于检索数据的方法已经过测试并且工作正常。
答案 3 :(得分:0)
我使用nhibernate和事务,并且对于单元测试我没有提交到数据库,但是我刷新了会话,如果需要,它会提供相同的错误,但不会写入数据。
当然,如果你有一个构建服务器,你只需对新建的数据库运行unittests,这个数据库是在每个构建中新制作的。尝试使用像firebird这样的基于文件的数据库。