Есть ли способ создать макет в конструкторе класса класса/функции setUp класса, чтобы макет был доступен для всех методов тестирования?Mockery - создание макета в конструкторе
Я попытался создать в конструкторе, как:
public class testMocks extends PHPUnit_Framework_TestCase {
protected $mock;
public function __construct()
{
$this->mock = Mockery::mock('myMockedClass');
}
...
Но это не работает. Если первый тест проходит, то все тесты, которые утверждают на макет, проходят, даже если они должны потерпеть неудачу (т. Е. Запустит shouldReceive, который должен завершиться неудачей). Есть идеи?
Ну я попытался с помощью нАлАдкА, а также с помощью конструктора, но убедившись, что я вызвать родительский конструктор. Ни для меня не работает. – BIOS
Смотрите мой отредактированный пост, я думаю, это может быть причиной вашей проблемы. –
К сожалению, нет. Я использую tearDown, как ваш пример :(Попробуйте сами проверить его. Создайте макет класса в вашей настройке и запустите два теста, утверждая, что mock должен получить вызов метода. Сделайте первый проход и напишите второй тест, чтобы утверждение о макете должно потерпеть неудачу (т. е. ожидать, что метод будет называться 10 раз, но называть его только один раз). Для меня оба теста проходят. Если первый тест проходит, следующий тест проходит. Я бы подумал, что это довольно обычная вещь чтобы делать. – BIOS