1

これはかなりばかげた質問だと思いますが、既に ORM フレームワークを使用している場合、モデルをテストしますか? テストすることがあまりないことに気付いたとき、私はそれでしたか?私は主にモデルを値に使用しますか? 例えば。ユーザーを追加するため

$user = new User();
$user->username = "user1";
$user->password = "password";
$em->persist($user);
$em->flush();

その後、編集は同様になります

$user = /* get user */
$user->email = "new@email.com";
$em->flush();

そんな感じ。おそらく追加する唯一の機能は、ユーザーの登録とパスワードの変更で、パスワードのソルティングとユーザー名が利用可能であることの確認を処理することです。

多分別のものはゲッターとセッターですか?ごく些細なこと?どうやってそれをしますか?

public function testCanSetUsername() {
    $user->username = "Hello";
    $this->assertEquals("Hello", $this->username);
}

ちょうどそのように?

4

1 に答える 1

1

ユーザーが望んでいることをコードが確実に実行するストーリー テストを作成する必要があります。単純な文のように聞こえますが、これらは最も重要なテストです。これらは、アプリがどのようにではなく何をするかを実際にテストします。これらのテストが、質問にあるコードをカバーすることになることがわかります。

たとえば、次のようなテストがある場合があります。

  • ユーザーがウェブサイトに登録する
  • ユーザーがパスワードを変更する

実際、これらすべてのテストを作成し、それらでカバーされていないコードがある場合、おそらくそのコードは必要なく、TDD を使用していた場合は最初から作成しなかったでしょう。

于 2010-12-18T06:36:53.797 に答える