Unit testing Symfony单元测试最佳实践

Unit testing Symfony单元测试最佳实践,unit-testing,symfony1,fixtures,Unit Testing,Symfony1,Fixtures,我想知道管理单元测试夹具的最佳实践是什么 我觉得我应该为每个单元测试编写一个fixture。 我认为如果我写太多的单元测试,夹具就会太长。 然后,如果我想修改它,我会打破一些固定装置 现在我寻找一种方法来为每个单元测试编写一个fixture 我认为理论上没有问题。如果我错了,告诉我 我的问题是如何确保设备更新。如果更改数据库架构,我不想更改所有装置。 如果在迁移过程中对模式进行了任何更改,则应该是可能的 有什么工具可以实现这一点吗?我发现最好对每个测试文件使用单独的fixture文件。这种方法有

我想知道管理单元测试夹具的最佳实践是什么

我觉得我应该为每个单元测试编写一个fixture。 我认为如果我写太多的单元测试,夹具就会太长。 然后,如果我想修改它,我会打破一些固定装置

现在我寻找一种方法来为每个单元测试编写一个fixture

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

我的问题是如何确保设备更新。如果更改数据库架构,我不想更改所有装置。 如果在迁移过程中对模式进行了任何更改,则应该是可能的


有什么工具可以实现这一点吗?

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

  • 夹具是独立的,改变夹具不会影响所有测试,只会影响一个测试
  • 夹具更小,因为它们不需要覆盖每个测试用例。这使它们更容易阅读
  • 查看测试用例的主题更容易,因为每个夹具文件只包含足够的数据
缺点是,当您经常更改数据库时,您也需要更新设备。在许多情况下,这是不需要的,因为新字段通常只用于新测试。否则,您可以始终自动执行该过程(例如,我使用vim宏来执行)


添加新字段不应破坏现有的测试IMHO。你应该确保所有的测试仍然通过。如果需要更改行为,应首先更新测试,使其失败,然后使其通过。

+1。完全涵盖了我想说的内容,但无法使其听起来足够清晰:-)单独的fixture文件非常好-在运行单个单元测试时还可以加快数据库的删除/重新加载速度。