使用PHPUnit测试静态方法

时间:2017-01-30 19:30:51

标签: static mocking phpunit abstract stub

我想测试一个方法。此方法在抽象类中使用静态方法verifyPassword()。

class Authentication {
...
public function onUserAuthenticate($credentials) {
….
$checkedIn    = UHelper::verifyPassword($credentials);
…
}

现在我在我的测试方法中创建了一个模拟对象,因为我不想用此测试测试verifyPassword()。

class AuthenticationTest {
..
public function testonUserAuthenticate {
...
$uhelper = $this->getMockForAbstractClass(\UHelper::class);
$uhelper->expects($this->any())
        ->method('verifyPassword')
        ->with($mypassword)
        ->will($this->returnValue(true));       
$this->class = new \Authentication();
$this->class->onUserAuthenticate($credentials);
..
}

当我运行$ this-> class-> onUserAuthenticate($ credentials)时,我怎么能完成我的模拟对象用于测试方法?

verifyPassword是对抽象类UHelper中静态方法的调用,所以我在任何地方都没有setUHelper方法。

我试图做的是在方法调用onUserAuthenticate时使用stub $ uhelper进行变量类认证。在相关问题中没有回答。

0 个答案:

没有答案