Symfony单元测试最佳实践

Cha*_*les 4 unit-testing symfony1 fixtures

我想知道管理单元测试装置的最佳实践是什么.

我觉得我应该编写一个夹具foreach单元测试.我想如果我写太多单元测试,夹具会太长.然后,如果我想修改它,我将打破一些固定装置.

现在我搜索一种方法来编写每个单元测试一个夹具.

从理论上讲,我认为没有问题.告诉我,如果我错了.

我的问题是我如何确保更新灯具.如果我更改数据库架构,我不想更改所有灯具.如果使用迁移对模式进行任何更改,则应该是可能的.

那有什么工具吗?

Jak*_*las 5

我发现最好为每个测试文件使用单独的fixture文件.这种方法有几个优点:

  • 固定装置是独立的,改变它们不会影响所有测试,只会影响一个.
  • 夹具较小,因为它们不需要覆盖每个测试案例.这使它们更容易阅读.
  • 由于每个fixture文件只包含足够的数据,因此更容易看出测试用例的主题什么.

缺点是当您经常更改数据库时,您还需要更新您的灯具.在许多情况下,不需要它,因为新字段通常仅用于新测试.否则,您始终可以自动执行该过程(例如,我使用vim宏执行此操作).

添加新字段不应该破坏您现有的测试恕我直言.您应该使所有测试仍然通过.如果您需要更改行为,则应首先更新测试,使其失败并使其通过.

  • +1.涵盖了我想要说的但却无法让它听起来足够清晰:-)单独的夹具文件很棒 - 在运行单个单元测试时也加快了db drop/reload的速度. (2认同)