Есть ли хорошие способы издеваться над конкретными методами в абстрактных классах с использованием PHPUnit? То, что я нашел до сих пор: expects () -> will () отлично работает с использованием абстрактных методов Это не работает для конкретных методов. Вместо этого выполняется исходный метод. Использование mockbuilder и предоставление всех абстрактных методов и конкретного метода setMethods () […]
Это может показаться глупым, надеюсь, что нет, но я хочу создать службу, которая вернет макеты для людей, которые используют мой проект, чтобы они могли издеваться над всеми классами из моего проекта и проверить их код. Моя идея заключалась в том, чтобы предложить такой сервис, чтобы его можно было вызывать в тестовых случаях другого проекта и […]
В PHPUnit вы можете сделать один тест зависимым от другого теста, используя аннотацию @depends . Можно ли сделать целую TestCase зависимой от теста в другой TestCase? Или, по крайней мере, сделать один тест в одной тестовой камере, зависящей от теста в другой TestCase? Я пытался: /** * @depends A::testMethodName */ Но, как я и ожидал, […]
У меня есть служба symfony, которая использует redis-соединение в некоторых методах, но не во всех методах. class ServiceA { private $redis; public function __construct($redis) { $this->redis = $redis; } public function getRequest($param1, $param2) { $result = $param1+ $param2; return $request; } .. other methods which use $redis connection } Я пишу функциональный тест для кода, […]
Иногда в моем коде я проверю, реализует ли конкретный объект интерфейс: if ($instance instanceof Interface) {}; Однако, создавая mocks этого интерфейса в PHPUnit, я не могу пройти этот тест. // class name is Mock_Interface_431469d7, does not pass above check $instance = $this->getMock('Interface'); Я понимаю, что наличие класса с именем Interface отличается от интерфейса, реализующего класс, […]
Учитывая следующие методы: public function setFoo($foo) { $this->_foo = $foo; return $this; } public function getFoo() { return $this->_foo; } Предполагая, что в будущем они могут быть более сложными: Как бы вы написали модульные тесты для этих методов? Только один метод тестирования? Должен ли я пропустить эти тесты? Как насчет покрытия кода? Как насчет аннотации […]
Мне интересно, что такое «строгий режим в PHPUnit»? например: phpunit –strict или в phpunit.xml <phpunit strict="true"> Я включил его, чтобы попробовать, и мои тесты начали сбой с PHP_Invoker_TimeoutException: Execution aborted after 1 second
Я использую Laravel какое-то время, и я много читал об Injection Dependency – тестируемый код. Я пришел в замешательство, когда говорил о Фасадах и посмеянных предметах. Я вижу два шаблона: class Post extends Eloquent { protected $guarded = array(); public static $rules = array(); } Это моя модель публикации. Я мог бы запустить Post::all(); чтобы […]
Я работаю с PHPUnit на некоторое время, и теперь все выглядит так, как будто мне может потребоваться разбить тесты на группы, которые будут выполняться как отдельные исполнения phpunit . Основная причина этого заключается в том, что большинство моих тестов нужно запускать в отдельных процессах, в то время как некоторые из них фактически не могут выполняться […]
Есть ли способ получить тесты внутри TestCase для запуска в определенном порядке? Например, я хочу отделить жизненный цикл объекта от создания, чтобы использовать его для уничтожения, но мне нужно убедиться, что объект настроен первым, прежде чем запускать другие тесты.