TDD:测试MVC应用程序

tho*_*hom 4 php phpunit unit-testing mocking fixtures

我从头开始使用TDD和PHPUnit创建一个新的应用程序.它将是一个MVC应用程序.我从模型开始我的测试.这很有趣,我没有太多问题.

现在我想创建我的视图/模型.但问题是:我如何测试我的控制器?观点怎么样?我的控制器将使用我测试的模型和我未来的视图.

谢谢.

bra*_*boy 6

MVC中的每个层有三大类测试.该单元测试模型,控制器的功能测试和视图的UI测试.

单元测试是最容易编写的.它们在时间上很便宜,并且不需要太多的依赖项来进行存根/模拟.

另一方面,功能测试与单元测试相比有点贵.在给定的场景中,如果您在应用程序中已经使用单元测试覆盖了足够多的模型,那么您可以在功能测试部分放松一下.但是,您应该仍然拥有良好的代码覆盖率 - 100%也是您的控制器方法的理想选择.

最后一个是UI测试,这是所有测试中最昂贵的.您可以使用Selenium进行基于浏览器的测试,并尝试使用您的语言自动化.您可能必须在后台运行RC服务器才能实现此目的.相信我,如果你涵盖前两个部分 - 单位和功能,这可以是可选的,如果不是没有.

并且建议使用代码覆盖实用程序进行CI - Continious Integration设置,该实用程序提供通过测试覆盖的代码百分比的趋势.