1

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);
}

最初のアサーションは問題ありませんが、2 番目のアサーションは常に $session->testIndex の値が "testValue" であると言っていますが、null である必要があります。

わからないので間違っていたら教えてください。

4

1 に答える 1

0

有効期限は、セッション クラスからデータにアクセスするたびに評価されるのではなく、データが最初に読み込まれたときにのみ評価されます。典型的な PHP スクリプトの実行に 1 秒以上かかることはないため、テストしようとしているケースが実際の状況で発生することはありません。

また、このような ZF に存在するポイント テスト機能はそれほど多くないことも付け加えておきます。ZF クラスは既に単体テスト済みです。フレームワークではなく、アプリケーションをテストします。

于 2013-01-18T14:55:57.983 に答える