Расширение ограничений PHPUnit выдает ошибку & quot; PHPUnit_Util_Type :: export () & quot; не найдено

Я хочу фиктивный объект, который может сказать мне, если:

  1. когда один из его методов вызывается
  2. что один из аргументов передается этому методу
  3. это массив
  4. и имеет конкретную пару ключ / значение.

Я хочу использовать ограничения PHPUnit для достижения этой цели, поэтому мой тестовый код будет выглядеть так:

$mock = $this->getMock('\Jodes\MyClass');
$mock->expects($this->once())
->method('myMethod')
->with(
$this->logicalAnd(
$this->isType('array'),
$this->arrayHasPair('my_key', 'my_value'),
)
);
// ... code here that should call the mock method

В этот предыдущий так вопрос, парень закончил тем, что написал свое собственное ограничение.

я нашел эта библиотека который, кажется, реализует несколько изящных вещей. Так что я установил его, добавив эту строку в моем composer.jsonТребуется раздел:

"etsy/phpunit-extensions": "@stable"

Но когда я пытаюсь использовать его, я получаю сообщение об ошибке. Я использую это так:

class MyClassTest extends PHPUnit_Framework_TestCase {
public function arrayHasPair($key, $value){
return new PHPUnit_Extensions_Constraint_ArrayHasKeyValuePair($key, $value);
}
public function testmyMethod(){
// code as per my example above
}
}

Но это приводит к этой ошибке:

Неустранимая ошибка PHP: вызов неопределенного метода PHPUnit_Util_Type :: export () в C: \ MyProject \ vendor \ etsy \ phpunit-extensions \ PHPUnit \ Extensions \ Constraint \ ArrayHasKeyValuePair.php в строке 50

Этот предыдущий вопрос / ответ объясняет в чем проблема, но я не уверен, что мне с этим делать. Значит ли это, что разработчики этой библиотеки отказались от нее? Есть ли альтернатива для использования? Или какие у меня есть варианты для его исправления? Я поражен, что такие основные ограничения все еще не существуют в PHPUnit. Очевидно, я мог бы написать свои собственные ограничения, но, конечно, это не нужно?

0

Решение

PHPUnit_Util_Type::export() метод был удален некоторое время назад. Расширение, которое вы хотите использовать, должно быть обновлено, чтобы быть совместимым с текущими версиями PHPUnit.

0

Другие решения

Других решений пока нет …