2011-02-25 118 views
4

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

我有这样的感觉,我应该写一个固定装置foreach单元测试。 我认为,如果我写太多的单元测试夹具将太长。 然后,如果我想修改它,我会打破一些灯具。

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

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

我的问题是我如何确保灯具将被更新。如果我更改数据库模式,我不想更改所有灯具。 如果模式的任何更改都通过迁移进行,则应该可能。

有没有什么工具呢?

回答

5

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

  • 灯具独立,并改变它们不会影响所有的测试,但只有一个。
  • 夹具是较小因为他们不需要覆盖每个测试用例。这使得它们更易于阅读。
  • 查看测试用例的主题更容易,因为每个fixture文件只覆盖足够的数据。

缺点是,当你经常改变数据库时,你也需要更新你的灯具。在许多情况下,这是不需要的,因为新的领域通常仅用于新测试。否则,您可以始终自动执行此过程(例如,我通过vim宏进行此操作)。

添加新字段不应该打破你现有的测试恕我直言。你应该让所有的测试仍然通过。如果你需要改变行为,你应该首先更新你的测试,让它们失败并让它们通过。

+2

+1。完全覆盖了我想说的内容,但无法让它听起来足够清晰:-)单独的夹具文件非常棒 - 在运行单个单元测试时也可以加快数据库的下载/重新加载速度。 – richsage 2011-02-27 18:42:15