2

特定のモデルにプロパティがあるかどうか、およびそのプロパティが null でないかどうかをアサートする単体テストがあります。

したがって、次のようなものです。

public function testHasMySpecialProperty()
{
    $this->assertTrue($this->model->getMySpecialProperty());
}

私の質問は、モデルがどうあるべきかです。オブジェクトのモック、または実際の状態。

この場合のオブジェクトは、システムのユーザーです。したがって、適切にロードするには、ユーザーIDなどが必要になります。しかし、単にそれを偽造すると、テストは役に立たないと感じます

4

3 に答える 3

2

a を使用することmockは、モデルを実際にテストすることではありません。実際のオブジェクトを渡してプロパティを確認するだけです。結局のところ、それはあなたがテストしているものです。

于 2012-12-09T01:18:27.723 に答える
1

場合によります。モックを使用して、複雑なオブジェクトまたは外部依存関係のあるオブジェクトの動作をスタブ化します。そのオブジェクトがテストの対象ではない場合。

したがって、の動作をテストする場合はmodel、本物を使用してください。がデータオブジェクトであり、動作がなく、外部リソースへのアタッチメントがない場合(たとえばmodel、データベース呼び出しを行わない場合)、本物を使用します。model追加の動作または依存関係があり、それがテストのターゲットではない場合は、先に進んでそれをモックします。

于 2012-12-09T03:48:22.000 に答える
1

モックをテストするためにモックを使用しません。モックを使用して、テストしたい実際のシステムの一部を切り取ります。モックにプロパティがあるかどうかを確認することは、モックをテストすることです。実際のシステムについてそれ以上の知識は得られません。

于 2012-12-09T02:14:18.290 に答える