我可以教PHPUnit Mage :: throwException *总是*抛出异常吗?

时间:2013-06-20 14:23:40

标签: php magento phpunit code-coverage

Magento有一个静态方法,可以在抛出异常之前进行一些额外的报告。

/**
 * Throw Exception
 *
 * @param string $message
 * @param string $messageStorage
 * @throws Mage_Core_Exception
 */
public static function throwException($message, $messageStorage = null)
{
    if ($messageStorage && ($storage = self::getSingleton($messageStorage))) {
        $storage->addError($message);
    }
    throw new Mage_Core_Exception($message);
}

保证抛出一个异常,所以PHPUnit的代码覆盖率考虑在Mage::throwException语句被发现代码之后的右大括号,这有点令人讨厌。

Shows code coverage analysis of code with no coverage following throwException statement.

我浏览了the PHPUnit documentation,但我没有看到任何非黑客的方式让它考虑所涉及的线路。 (我考虑在方法结束时添加一个死代码return语句,或者每次使用Mage::throwException时我们必须做的任何事情。)

我是否可以通过某种方式教授PHPUnit Mage::throwException 总是抛出异常,所以对待它(就覆盖范围而言)与throw new WhateverException()一样?< / p>

1 个答案:

答案 0 :(得分:1)

我也有这个问题。

只是做:

throw Mage::getException(...);

并在getException中返回异常对象。否则你会坚持下去。