У меня есть несколько тестов PHPUnit в моем проекте, и некоторые из них используют функцию @expectedException, как показано ниже.
/**
* @expectedException League\OAuth2\Client\Provider\Exception\IdentityProviderException
**/
public function testExceptionThrownWhenErrorObjectReceived()
{
...
}
/**
* @expectedException League\OAuth2\Client\Provider\Exception\IdentityProviderException
**/
public function testExceptionThrownWhenOAuthErrorReceived()
{
...
}
/**
* @expectedException UnexpectedValueException
**/
public function testExceptionThrownWhenAskingForResourceOwner()
{
...
}
Я запускаю их с помощью travis под PHP 5.6, 7.0, 7.1 и 7.2 без проблем, но HHVM дает сбой:
There were 3 errors:
1) Mrjoops\OAuth2\Client\Test\Provider\JiraTest::testExceptionThrownWhenErrorObjectReceived
Mrjoops\OAuth2\Client\Provider\Exception\JiraIdentityProviderException: Validation Failed
2) Mrjoops\OAuth2\Client\Test\Provider\JiraTest::testExceptionThrownWhenOAuthErrorReceived
Mrjoops\OAuth2\Client\Provider\Exception\JiraIdentityProviderException: error_collection
3) Mrjoops\OAuth2\Client\Test\Provider\JiraTest::testExceptionThrownWhenAskingForResourceOwner
UnexpectedValueException: Invalid response received from Authorization Server. Expected JSON.
Я использую последнюю версию PHPUnit 5.7 (для совместимости с PHP 5.6) и последнюю версию HHVM 3.29.1.
Трэвис написал на своем сайте об этом:
Обратите внимание, что если вы хотите запустить PHPUnit на HHVM, вы должны
явно установите версию 5.7 в свой .travis.yml из-за
проблема совместимости между HHVM и PHP7
Значит, я в порядке.
Я знаю, что существует известная проблема (https://github.com/sebastianbergmann/phpunit/issues/1640), которая не была решена и закрыта в PHPUnit, и несоответствие задокументировано в HHVM (https://github.com/hhvm/user-documentation/blob/master/guides/hhvm/06-inconsistencies/03-classes-and-objects.md),, но мне не ясно, существует ли обходной путь.
Подробности доступны здесь:
Заранее благодарю за помощь.