2011-03-17 98 views
3

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

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

+1

您必须在单元测试中设置测试数据库。 – 2011-03-17 04:34:25

回答

6

如果你想这样做(在隔离=测试)单元测试:

  • 业务逻辑将执行针对假数据库(库模拟)
  • 测试检查,如果业务逻辑真的叫做库删除方法。

如果你想与业务逻辑和数据库可以

  • 打开一个数据库事务
  • 通过SQL
  • 到数据库中添加数据执行的是破坏了业务逻辑集成测试刚刚添加的数据
  • 验证数据是否不在数据库中(通过sql)
  • 回滚数据库事务。

更新:

如果您使用的是.NET,你应该看看ndbunit为Java dbunit

+0

我完全同意 – Jean 2011-03-17 08:24:09

1

使用xtunit,如果你是.NET。这将在事务中包装您的测试,并在完成时将其回滚。

1

不要镜像数据库...存根。如果您正在测试数据库,那么您不是单元测试。