[英]Best practices to test protected methods with PHPUnit (on abstract classes)
[英]Abstract class with protected methods in phpunit
我一直在尝试在抽象类上使用phpunit进行测试,该抽象类包含将由其子级共享的受保护方法。 我一直在阅读有关不应测试私有/受保护方法的信息,因为这会使代码变得脆弱。 在这种情况下,我既不希望这些方法成为公共API(尽管这不会造成伤害,但它感觉不对劲),也不要在每个孩子中测试同一个父操作是否执行正确。
因此,作为一个示例解释更多,我将尝试发布一个简单的示例
abstract class AbstractAuthenticator
{
abstract function authenticate();
protected function checkUserPrivilege()
{
... code
}
protected function checkEnvPrivileges()
{
... code
}
}
class BasicAuth extends AbstractAuthenticator
{
public function authenticate()
{
$this->checkUserPrivilege();
$this->checkEnvPrivileges();
... code
}
}
class AjaxAuth extends AbstractAuthenticator
{
public function authenticate()
{
$this->checkUserPrivilege();
$this->checkEnvPrivileges();
... code
}
}
我的问题(是否可以做多个)是:
authenticate()
调用 谢谢你们。 我认为这个问题很棘手,需要一些观点来研究,因此,我感谢您的评论
创建一个TestAuth类,并在使用它而不是真实的* Auth对象的AbstractAuthenticatorTest中测试受保护的方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.