学说2 - 功能测试

时间:2012-06-29 11:27:41

标签: testing doctrine-orm phpunit

好的,这是情况。我使用Doctrine 2和PHPUnit。 我有一个产品清单,每个都有一个类别。我想测试findByCategory()方法,它应该显然返回特定类别的产品列表。

很简单,但我不确定如何正确测试。在网络上的某些地方,我只看到一些简单的例子:

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

所以它只是测试返回结果的数量,而不是实际数据。 我也试过这个:

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

其中$ products是我在搜索之前保留的实体列表。 但它需要花费很多时间才能完成,有时甚至会崩溃(内存不足)。

请告诉我您用来进行数据库测试的方法。

非常感谢!

2 个答案:

答案 0 :(得分:0)

试试这个:

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

或者这个:

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

答案 1 :(得分:0)

我会测试返回结果的数量(如第一个示例中所示),然后运行结果并测试其类型:

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

foreach($foundProducts as $product) {
    $this->assertInstanceOf('MyProductEntity', $product);
}