0

ログインしている場合、ブラウザから実行すると失敗するテストが見つかりました。このテストを実行する前に、セッションがクリアされていることを確認する必要があります。テスト内からCakePHPセッションをクリアする簡単な方法はありますか?

Session :: Destroy();を呼び出してみました。しかし、テストはセッションの可視性を取得できないようです。

たぶん私はSessionを間違ってインポートしようとしていますか?私が使用しているのは:App :: import('Core'、'Session');

4

3 に答える 3

1

セッションコンポーネントをモックする必要があります。Mark Story自身が、コントローラーをテストする方法を示す記事を書きました。

于 2011-11-11T19:27:14.180 に答える
0

gustavotkgは正しいと思います。モックオブジェクトを使用する必要があります。残念ながら、コードが設定された方法でこれを行うのは完全に簡単ではありません。私は戻っていくつかのことをやり直さなければならないでしょう。一時的な修正のために、これは私がしたことです:

$appController = ClassRegistry::init('AppController');
$appController->constructClasses();
$appController->Session->destroy();
于 2011-11-11T19:45:13.470 に答える
0
if(App::import('Core','Session')) {
  $session = new CakeSession();
  $session->start();
}

これがお役に立てば幸いです。

于 2011-11-12T04:38:06.017 に答える