Ben*_*Ben 9 php testing exception code-cleanup phpmd
我刚刚第一次启动了PHPMD,可以预见的是,我有一个我无法弄清楚的错误.错误是
避免在方法'setLang'中使用对'InvalidArgumentException'类的静态访问.
而代码是
public function setLang($val0) {
switch ($val0) {
case ENG:
case FRE:
case SPA;
$this->lang = $val0;
break;
default:
throw new InvalidArgumentException("Invalid language choice.");
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试了各种不同的东西,但我认为在一天结束时Exception是静态工厂(???)所以它必须具有静态访问权限.但是,PHPMD的人肯定比我聪明,所以不会让他们感到害怕.
为什么会出现此警告,以及如何解决?
com*_*857 10
这个警告背后的想法是,如果你使用new关键字在代码中嵌入类名,那么很难在测试和模拟或存根方法中交换这些类,而被测试的代码可能会调用它们.请参阅 PHPMD规则中的说明.
我认为在你的情况下这是误报,因为异常通常没有太多的行为,但它们的类名(以及它背后的类层次结构)几乎是唯一重要的事情.
如果您想在此处删除警告,可以在@SupressWarnings此处使用注释.