【问题标题】:Unit testing Zend_Session单元测试 Zend_Session
【发布时间】:2013-01-18 14:15:35
【问题描述】:

我在测试 zend_session 时遇到问题,我的测试如下所示:

Bootstrap.php

public function _initSession() {
    try
    {
        Zend_Session::setSaveHandler(new APP_Session_SaveHandler_Memcached());            
        Zend_Session::start();

        $session = new Zend_Session_Namespace('APP');
        Zend_Registry::set('session', $session);
    }
    catch(Exception $e) 
    {
        Zend_Registry::get('log')->err($e);
    }
}  

SessionTest.php

public function testSession() { 
    $session = Zend_Registry::get('session');
    $session->setExpirationSeconds(1);
    $session->testIndex = "testValue";

    $this->assertEquals('testValue', $session->testIndex);

    sleep(3);

    $this->assertEquals(null, $session->testIndex);
}

第一个断言是可以的,但是第二个总是说 $session->testIndex 的值是“testValue”,什么时候应该为 null 对吧?

如果我错了,请告诉我,因为我无法弄清楚。

【问题讨论】:

    标签: php unit-testing zend-framework zend-session


    【解决方案1】:

    不会在每次从会话类访问数据时评估到期时间,而是在首次加载数据时评估。典型的 PHP 脚本执行时间不应超过一秒钟,因此您尝试测试的情况不应在现实世界中发生。

    我还要补充一点,在 ZF 中并没有很多像这样的点测试功能 - ZF 类已经过单元测试。测试您的应用程序,而不是框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 2011-04-12
      • 2023-03-21
      • 2011-05-04
      相关资源
      最近更新 更多