0

メンバー コントローラーの登録アクションを単体テストするときに、メンバーのテスト データベースに新しいレコードが作成されたことを確認するにはどうすればよいですか?

getLastInsertID を使用しようとしていますが、Member モデルをロードして呼び出しを行う方法がわかりません。

メンバー モデルの登録とアクティブ化をカバーするテストを既に持っていますが、アクティブ化プロセスを実行するとエラーが発生します。コントローラーでテストを使用して、新しいメンバーを登録し、2 つのテストを使用してアクティブ化できることを確認したいと考えています。

App::uses('Member', 'Model');コントローラーテスト に追加した更新と、

  public function setUp() {
    parent::setUp();
    $this->Member = ClassRegistry::init('Member');
  }

関数 testRegister には次のものがあります。

   $data = array(
      'Member' => array(
        'first_name' => 'Foo',
        'last_name' => 'Bar',
        'email' => 'foobar@example.org',
        'password' => 'password',
        'password_confirmation' => 'password',
        'security_question' => 0, // Your father's middle name?
        'security_answer' => 'Randolf the great',
      ),
    );
    $result = $this->testAction(
      '/Members/register',
      array('data' => $data, 'method' => 'post')
    );
    debug($result);

    $this->assertTrue($this->Member->validationErrors);
    $this->assertTrue($this->Member->getLastInsertId());

アサーションには、「array() が true であることをアサートできませんでした」および「null が true であることをアサートできませんでした」と表示されます。

4

1 に答える 1

0

$this->varsモデルでレコードを見つけるのに十分な情報を見つけることができました。すべてが今すぐテストされます。

于 2012-06-08T18:54:15.103 に答える