我正在尝试找到一种测试抽象类常量的方法,该常量必须存在并匹配/不匹配一个值。例如:
// to be extended by ExternalSDKClild
abstract class ExternalSDK {
const VERSION = '3.1.1.';
}
class foo extends AController {
public function init() {
if ( ExternalSDK::VERSION !== '3.1.1' ) {
throw new Exception('Wrong ExternalSDK version!');
}
$this->setExternalSDKChild(new ExternalSDKChild());
}
}
限制... 我们使用的框架不允许在init()方法中进行依赖注入。(重构init()方法可能是解决问题的方法...)
我运行的单元测试和代码覆盖率已经覆盖了所有内容,除了异常。我无法想出一种使ExternalSDK::Version与其不同的方法。
欢迎各种想法。
getVersion
返回值来轻松重构它,但是用较小的更改来演示这种单元测试技术会更容易些。 - David Harkness