【发布时间】:2016-02-02 18:06:46
【问题描述】:
有没有一种方法可以测试getNumberOfProductsForCategory 方法将返回一个整数而不是特定 值(在这种情况下为18)?
我觉得简单地测试“18”虽然现在是正确的,但让我的测试变得非常脆弱,因为该值可能会在未来的某个时候发生变化,这意味着测试将失败。
这是我的 PhpSpec 函数(为简洁起见减少了):
function it_returns_something_if_products_exist(
ProductRepository $productRepository,
Category $category
)
{
$category->getId()->willReturn(268);
$productRepository->getNumberOfProductsForCategory($category)->willReturn(18);
// call method here
}
这是我的存储库方法:
/**
* @param Category $category
*
* @return mixed
*/
public function getNumberOfProductsForCategory(Category $category)
{
$dql = 'SELECT COUNT(tvp)
FROM \CRMPicco\ProductBundle\Entity\Product tvp
WHERE tvp.category = :category';
return $this->getEntityManager()
->createQuery($dql)
->setParameter('category', $category)
->getSingleScalarResult();
}
【问题讨论】: