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

Victor Efimov victor на vsespb.ru
Чт Июн 30 09:53:30 PDT 2016


или
я переодически делаю вместо
===
my ($want_result,  $input) = ( "вход 1", "выход 1")

my $r = my_func($input)
ok($r)
is($r->string, $want_result, "parse $input")
===

так:

===
sub test_case {
  my ($want_result,  $input) = @_;

  my $r = my_func($input)
  ok($r)
  is($r->string, $want_result, "parse $input")
}

test_case( "вход 1", "выход 1");
test_case( "вход 2", "выход 2");
test_case( "вход 3", "выход 3");
test_case( "вход 4", "выход 4");
===

что-то в общем-то эквивалентно готовому хэшу с вход-выход

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