[英]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.