Unit testing 如何测试Zend_Form类?

Unit testing 如何测试Zend_Form类?,unit-testing,zend-framework,zend-form,Unit Testing,Zend Framework,Zend Form,如何对我为应用程序编写的Zend_表单类进行单元测试? 我渴望拥有100%的代码覆盖率,所以仅仅测试使用它的每个控制器似乎还不够,但我可能在UnitTest方法中遗漏了一些东西 单元测试代表单元测试,因此您应该 测试基于Zend_表单的类-您可以传递任何测试数据来填充方法 而不是单独测试控制器-为基于Zend_表单的类创建mock,因为您要再次测试它,这需要在控制器中进行某种工厂或依赖项注入 comment示例中的LoginForm类提供的功能并不比设置元素、验证器、装饰器等多,因此可以很容

如何对我为应用程序编写的Zend_表单类进行单元测试?

我渴望拥有100%的代码覆盖率,所以仅仅测试使用它的每个控制器似乎还不够,但我可能在UnitTest方法中遗漏了一些东西

单元测试代表单元测试,因此您应该

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

comment示例中的LoginForm类提供的功能并不比设置元素、验证器、装饰器等多,因此可以很容易地进行测试。如果要测试控制器,应将其传递(例如,作为构造函数参数,请参阅)一些模拟LoginForm。如果您想测试控制器并形成集成(这不是单元测试,但也可以使用PhpUnit进行),您可以使用控制器的方法setRequest来设置假请求数据。

单元测试代表单元测试,因此您应该

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

comment示例中的LoginForm类提供的功能并不比设置元素、验证器、装饰器等多,因此可以很容易地进行测试。如果要测试控制器,应将其传递(例如,作为构造函数参数,请参阅)一些模拟LoginForm。如果您想测试控制器并形成集成(这不是单元测试,但也可以使用PhpUnit进行),您可以使用控制器的方法setRequest来设置假请求数据。

您可以尝试使用。通过这种方式,您可以准备输入和预期输出。但是,它要求您在浏览器中实际显示表单,因此您的控制器也必须工作。

您可以尝试使用它。通过这种方式,您可以准备输入和预期输出。但是,它要求您在浏览器中实际显示表单,因此您的控制器也必须工作。

如何编写将表单数据发布到操作控制器的测试用例?通过这种方式,您可以根据需要生成任意多个不同的用户输入,并且可以检查表单验证是否有效,或者是否得到正确的错误消息

编写将表单数据发布到动作控制器的测试用例怎么样?通过这种方式,您可以根据需要生成任意多个不同的用户输入,并且可以检查表单验证是否有效,或者是否得到正确的错误消息

谢谢steve,但是你没有完全回答我的问题-我问的是如何测试它,而不是我是否应该(我刚才提到了为什么我问了关于测试Zend_表单的问题)以及你到底想测试什么?您可以创建实例,检查构造函数是否用所有属性和验证器创建了所有元素CrReCurTy,或者在ZeNythFraseBasic类中有其他特定功能吗?让我们考虑以下指南中的表单:如何编写最全面的测试?我想知道测试表单的所有可能性。我知道我可以断言属性是构造函数应该设置的,但是没有一个方法不返回任何值(尽管它们可以返回,比如在translate方法中等等)。谢谢steve,但是你没有完全回答我的问题-我问的是如何测试它,而不是我是否应该(我刚才提到了为什么我会问关于测试Zend_表单的问题)你想测试什么?你可以创建实例,检查构造函数是否用所有的属性和验证器创建了所有的元素CrReCurt,或者在ZeNythFraseBasic类中有其他的特定功能吗?让我们考虑下面的指南中的表单:如何编写最全面的测试??我想知道测试表单的所有可能性。我知道我可以断言属性是构造函数应该设置的,但是没有一个方法不返回任何值(尽管它们可能有返回,比如在translate方法中等等)。嘿Larry。Selenium提供了一个完整的功能测试机会(它确实做得很好!)但正如我在问题中所写的,我在谈论单元测试。嘿,Larry。Selenium提供了一个完整的功能测试机会(而且它做得非常好!),但正如我在问题中所写的,我在谈论单元测试。