[Moscow.pm] Научите писать красивые тесты

Akzhan Abdulin akzhan.abdulin на gmail.com
Чт Июн 30 10:04:54 PDT 2016


Обычно нужно знать искомый пример для фэйла и весь кейс его
воспроизведения. Если для этого требуется знать номер строки, то да,
обязательно надо добавить, и наверняка это можно автоматизировать.

Просто такой задачи тогда не стояло.

30 июня 2016 г., 20:00 пользователь Гришаев Анатолий <agrishaev на gmail.com>
написал:

> Почти, что надо.
> Маленький минус --- теряется информация о строке к которой определен тест
> Если добавить
>
> {
> app => sub { return [ 200, [ foo => "\021bar" ], [ 'OK' ] ]; },
> die => qr/Response headers MUST NOT contain characters below
> octal.+Header: foo/,
>  line => get_line(),
> },
>
> Будет почти что надо
>
> 30 июня 2016 г., 19:46 пользователь Akzhan Abdulin <
> akzhan.abdulin на gmail.com> написал:
>
>> оно?
>>
>>
>> https://github.com/plack/Plack/blob/master/t/Plack-Middleware/lint_wrong_header_info.t
>>
>> 30 июня 2016 г., 19:25 пользователь Гришаев Анатолий <agrishaev на gmail.com
>> > написал:
>>
>>> Добрый день Moscow PM!
>>>
>>>
>>> Пишу тесты для сложной функции-монстра
>>>
>>> На вход принимает строку  и на выход "почти" строку.
>>>
>>>
>>> Сейчас тесты выглядят так
>>> ////////////////////////////
>>> my ($want_result,  $input) = ( "вход 1", "выход 1")
>>>
>>> my $r = my_func($input)
>>> ok($r)
>>> is($r->string, $want_result, "parse $input")
>>>
>>> my ($want_result,  $input) = ( "вход 2", "выход 2")
>>>
>>> my $r = my_func($input)
>>> ok($r)
>>> is($r->string, $want_result, "parse $input")
>>> //////////////////////////
>>>
>>> Получается куча повторяющего кода, в котором теряется суть
>>>
>>> Можно ли этого избежать и писать более красиво?
>>>
>>>
>>>
>>>
>>>
>>> --
>>> Moscow.pm mailing list
>>> moscow-pm на pm.org | http://moscow.pm.org
>>>
>>>
>>
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>>
>>
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20160630/abb6672c/attachment.html>


Подробная информация о списке рассылки Moscow-pm