【问题标题】:Proper way to PHPunit test mock getRequest->getHeader('referer')PHPunit 测试模拟 getRequest->getHeader('referer') 的正确方法
【发布时间】:2012-05-13 14:35:09
【问题描述】:

我正在编写单元测试,要求我在 Zend 框架中使用或模拟 getRequest->getHeader('referer'),在该框架中,引用者有一个条件来确定是否根据其值设置新会话。

正确测试的最佳方法是什么?

我应该简单地模拟控制器并调用像 $controller->getRequest->getHeader('referer') 这样的标头请求还是需要模拟请求对象?

显然,由于这是一个单元测试,只是在模拟这种行为以确保代码正常工作,所以我什至不确定您将如何模拟 url 请求标头。

【问题讨论】:

    标签: php oop zend-framework phpunit


    【解决方案1】:

    您应该将自己的请求对象注入到框架中。我建议使用Zend_Controller_Request_HttpTestCase,因为它为您提供了设置所有各种属性(标题、查询、正文、uri、cookie 等)的完全灵活性。您将能够设置自己的引用并测试您的应用程序的反应。

    【讨论】:

    • $this->_mockRequest = $this->getMockBuilder('Zend_Controller_Request_HttpTestCase') ->disableOriginalConstructor() ->getMock();
    • 但是你能提供一个设置和检索的例子吗?我应该提到这是一个控制器动作助手
    猜你喜欢
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 1970-01-01
    • 2011-10-30
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多