tdd - 数据库集成测试

标签 tdd integration-testing database-testing

当您仅使用数据访问层或大多数应用程序堆栈进行集成测试时。如果多个测试在同一数据库上运行,最好的方法是防止它们相互冲突?

最佳答案

交易。

ruby on rails单元测试框架的作用是这样的:

Load all fixture data.

For each test:

  BEGIN TRANSACTION

    # Yield control to user code

  ROLLBACK TRANSACTION

End for each

这意味着
  • 测试正在进行的对数据库的任何更改都不会影响正在运行的其他线程
  • 下一个测试的数据不受先前测试的污染
  • 这比手动为每个测试重新加载数据快约十亿倍。

  • 我一个人认为这很酷

    关于tdd - 数据库集成测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61718/

    相关文章:

    .net - 是否有适用于 VB6 的好的 TDD 工具或资源?

    java - 配置 JBehave 以运行多线程 TestNG 测试

    unit-testing - 如何使用 NHibernate 删除所有数据库数据?

    java - H2数据库是否兼容Oracle 'Insert All'语句?

    node.js - 测试 NodeJS API 时如何模拟外部服务

    JUnit 数据库测试和测试排序

    java - 如何测试飞路迁移?

    ruby - 在 Cucumber 中使用带有背景的变量

    ios - 单元测试(猕猴桃): Property is always nil in test after loadView and viewDidLoad are called

    c# - 这个测试名称是不是有点过头了