Symfony单元测试最佳实践

4
我想了解如何管理单元测试用例的测试数据最佳实践。
我觉得应该为每个单元测试编写一个测试数据。但如果我写太多单元测试,测试数据将会变得太长。如果我要修改它,我可能会破坏一些测试数据。
现在我正在寻找一种为每个单元测试编写一个测试数据的方式。
理论上来说没有问题,如果我错了,请告诉我。
我的问题是如何确保测试数据会被更新。如果我更改数据库架构,我不想更改所有测试数据。如果使用迁移进行任何架构更改,则应该是可能的。
是否有相关工具可供使用?
1个回答

5

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

  • Fixture是独立的,更改它们不会影响所有测试,而只会影响一个测试。
  • Fixture更,因为它们不需要覆盖每个测试用例。这使它们更易于阅读。
  • 每个fixture文件都涵盖了足够的数据,因此更容易看出测试用例的主题

缺点是当您经常更改数据库时,您也需要更新fixture。在许多情况下,这并不需要,因为新字段通常仅与新测试一起使用。否则,您可以随时自动化该过程(例如使用vim巨集)。

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


2
+1。涵盖了我想说的内容,但我无法让它听起来清晰明了 :-) 单独的装置文件非常棒 - 在运行单元测试时也加快了您的数据库删除/重新加载速度。 - richsage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接