
Далее нужно проверять только то, что дергается setStatusCode с аргументом 404, на пример.
Или что JsonResponse дергает setContentType с 'application/json' и так далее.
return new Response('Foo', 404);
Проверяй.PHP:return new Response('Foo', 404);
public function __construct($content = '', $status = 200, $headers = array())
{
$this->headers = new ResponseHeaderBag($headers);
$this->setContent($content);
$this->setStatusCode($status);
$this->setProtocolVersion('1.0');
if (!$this->headers->has('Date')) {
$this->setDate(new \DateTime(null, new \DateTimeZone('UTC')));
}
}
это ваш частный случай, а бывает, что тестировать надо именно абстрактное нечтоМы тестируем не абстрактное нечто, а код, который написали
какие коды ответа? Ну вызывается header просто так - пройдись find and replace и замени на foo_set_header, который можно мокнуть и протестить.зря так ржете.
у ТС ситуация любого проекта с legacy, у меня то же самое - проекту хрен знает сколько лет, в наследство получена кучка дерьма, работаю как сапер, переписать все заново - надо много месяцев, нам это не разрешают, надо обернуть тестами. что проверять? коды ответа, конечно
Нет, ты не проверишь. Ты собрался мокать то, что создается где-то внутри:Мы тестируем не абстрактное нечто, а код, который написали. Не надо тестить ради тестов.
Да и потом, тестировать именно вызов setter'а — это не то, что мы хотим тестировать. Если я заменю в конструкторе setter на прямое присваивание property, то тест не должен сломаться.Реально, чего тут до сих пор обсуждается? Сделал мок Response и вперед.
$client = static::createClient();
$crawler = $client->request('GET', '/demo/hello/Fabien');
$response = $client->getResponse()
...
лол. Я что-то подобное говорил?ты оказываешься не прав в том, что мы не можем получить параметры Response, вне зависимости от реализации