所以我开始在我的应用程序的symfony 2中编写功能和单元测试。我应该怎样测试?我应该测试什么?
我将功能与单元测试分开。功能测试仅适用于控制器,其余单元测试。通过功能测试,我测试用户在我的应用程序中可以使用的所有场景的HTML输出。但它够了吗?我只测试响应/请求,而不是控制器中的代码本身,没有数据库查询等。
单元测试...我应该用它测试控制器吗?另外,如何测试存储库?我应该测试每个查询的输出吗?如果数据库缺少记录怎么办?
另外,测试在数据库中创建的混乱如何?有没有办法在测试之后恢复数据库到之前的状态?
对不起有多个问题,但是这整个单元测试题目对我来说真的是一团糟。
非常感谢!
如果在'dev'或'test'环境中加载页面需要几秒钟,请尝试将缓存移至[tmpfs](http://en.wikipedia.org/wiki/Tmpfs)或移至[SSD] (http://en.wikipedia.org/wiki/Solid-state_drive),你应该观察到明显的差异。 – 2014-12-13 22:49:41
我不明白为什么TDD和功能测试不兼容。您可以配置phpunit以便一次仅测试一个组,类等。因此,如果您正确配置phpunit,TDD不会花费更多时间。 – 2014-12-13 22:52:15
为了使用功能测试,您必须在每次运行一组测试时擦除数据库。这需要时间。另一个问题恰恰是执行测试的次数。你不执行所有这些,这意味着在重构一些代码之后,你不能确定_everything_是好的,只是它的一部分。使用单元测试你想检查整个代码的错误,因为没有它你不能确定你不会通过重构某些东西来破坏一些代码。 – 2014-12-15 07:35:29