0

わかりました、これが状況です。Doctrine 2 と PHPUnit を使用しています。製品のリストがあり、それぞれにカテゴリがあります。特定のカテゴリの製品のリストを明らかに返す findByCategory() メソッドをテストしたいと思います。

非常に単純ですが、これを適切にテストする方法がわかりません。Web 上のいくつかの場所では、次のような単純な例が見られます。

$this->assertEquals(4, count($foundProducts));

したがって、返された結果の量をテストするだけで、実際のデータはテストしません。私もこれを試しました:

   foreach($allFoundProducts as $i=>$foundProduct) {
        $this->assertEquals($products[$i], $foundProduct);
    }

$products は、検索する前に保持したエンティティのリストです。しかし、それを達成するには多くの時間がかかり、時にはクラッシュすることさえあります (メモリー不足)。

このようなデータベース テストを作成するために使用するアプローチを教えてください。

どうもありがとう!

4

2 に答える 2

0

これを試して:

$products = $em->getRepository('MyProject\Domain\Product')->findBy(array('category' => $category));

またはこれ:

$products = $em->getRepository('MyProject\Domain\Product')->findByCategory($category);
于 2012-06-29T19:38:44.093 に答える
0

返された結果の数をテストし (最初の例のように)、結果を実行してそのタイプをテストします。

$this->assertEquals(4, count($foundProducts));

foreach($foundProducts as $product) {
    $this->assertInstanceOf('MyProductEntity', $product);
}
于 2012-07-28T19:28:31.700 に答える