好的,这是情况。我使用Doctrine 2和PHPUnit。 我有一个产品清单,每个都有一个类别。我想测试findByCategory()方法,它应该显然返回特定类别的产品列表。
很简单,但我不确定如何正确测试。在网络上的某些地方,我只看到一些简单的例子:
$this->assertEquals(4, count($foundProducts));
所以它只是测试返回结果的数量,而不是实际数据。 我也试过这个:
foreach($allFoundProducts as $i=>$foundProduct) {
$this->assertEquals($products[$i], $foundProduct);
}
其中$ products是我在搜索之前保留的实体列表。 但它需要花费很多时间才能完成,有时甚至会崩溃(内存不足)。
请告诉我您用来进行数据库测试的方法。
非常感谢!
答案 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);
}