我如何测试Zend_Form类?

时间:2010-02-26 10:47:19

标签: unit-testing zend-framework zend-form

如何对我为我的应用程序编写的Zend_Form表单类进行单元测试? 我渴望拥有100%的代码覆盖率,所以只测试使用它的每个控制器,似乎不够,但我可能会错过UnitTest方法中的一些东西..

3 个答案:

答案 0 :(得分:0)

单元测试代表单元测试,所以你应该

  • 测试基于Zend_Form的类 - 您可以传递任何测试数据以填充方法
  • 而不是单独测试你的控制器 - 为你的基于Zend_Form的类创建模拟,因为你要再次测试它,这需要在控制器中进行某种工厂或依赖注入。

注释示例中的LoginForm类没有提供比设置元素,验证器,装饰器等更多的功能,因此可以轻松测试。如果你想测试控制器,你应该传递它(例如作为构造函数参数,参见Dependency injection)一些模拟的LoginForm。如果你想测试控制器和表单集成(这不是单元测试,但也可以用PhpUnit进行),你可以使用控制器的方法setRequest来设置虚假的请求数据。

答案 1 :(得分:0)

您可以使用Selenium进行尝试。这样您就可以准备输入和预期输出。但是,它要求您实际在浏览器中显示表单,因此您的控制器也必须正常工作。

答案 2 :(得分:0)

如何编写POST表单数据到操作控制器的测试用例?这样,您可以根据需要生成任意数量的不同用户输入,并且可以检查表单验证是否有效或是否获得正确的错误消息。