单元测试破坏性方法

时间:2011-03-17 04:32:35

标签: unit-testing

在对模型和数据库更改方法/函数进行单元测试时,单元测试的最佳方法或思路是什么?例如,模型中的“发布”函数除了通过/失败之外没有可测试的行为,并且在传递的情况下,它修改数据库。最佳做法或方法?

目前的想法是在测试之前创建当前数据库的镜像,只需更改单元测试文件中的数据库选择。谢谢你的建议。

3 个答案:

答案 0 :(得分:6)

如果你想进行单元测试(=隔离测试):

  • 业务逻辑将针对假数据库(Repository mock)
  • 执行
  • 测试检查业务逻辑是否确实调用了存储库删除方法。

如果您想要与业务逻辑和数据库进行集成测试,则可以

  • 打开数据库事务
  • 通过sql
  • 将数据添加到数据库
  • 执行破坏刚刚添加的数据的业务逻辑
  • 验证数据不再存在于数据库中(通过sql)
  • 回滚数据库事务。

更新

如果您使用的是.NET,请查看ndbunitdbunit

答案 1 :(得分:1)

如果您使用.net,请使用xtunit。这会将您的测试包装在一个事务中,并在完成后将其回滚。

答案 2 :(得分:1)

不要镜像数据库...存根。如果您正在测试数据库,则不进行单元测试。