单元测试破坏性方法

Mat*_*ica 3 unit-testing

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

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

k3b*_*k3b 6

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

  • 业务逻辑将针对假数据库执行(存储库模拟)
  • 测试检查业务逻辑是否真的调用了存储库删除方法.

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

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

更新:

如果你使用的是.NET,你应该看一下java dbunit的ndbunit