[Moscow.pm] Test::

Konstantin S. Uvarin khedin на gmail.com
Пн Янв 9 14:41:31 PST 2017


Приветствую!

  На Новый год Дед мороз подарил мне большую коробку кодинга, так что я
запилил ещё один модуль, о котором давно мечтал. Суть такова:

# ... somewhere in production code
use Test::Refute::Contract;

my $c = Test::Refute::Contract->new;
$c->is( $foo, $bar, "vars match" );
$c->like( $user_input, qr/f?o?r?m?a?t?/;

if ($c->get_pass) {
    # proceed...
} else {
    # no go
    warn $c->get_tap; # ok 1 - foo\nnot ok 2 - bar\n1..2
};

​  Сами проверки совпадают с таковыми в Test::More, плюс можно добавлять
свои и/или расширять сам класс контракта. ​

​Также имеется конструкция

$c->refute( $what_went_wrong, $human_explanation);

 - которая, собственно, и используется для расширения. assert, вывернутый
наизнанку: если первый аргумент false (null в случае плюсов/джавы) -
считаем, что всё working as expected; если же там пришло что-то - то громко
жалуемся, сообщая и объяснение, и причину провала.

  Выглядит немножко контр-интуитивно, но ​если освоить именно такую форму,
на нормальный assert без слёз уже смотреть не получается.

  Ннннадо кому?

  https://github.com/dallaylaen/perl-test-refute

-- 
Konstantin S. Uvarin
jabber: see <from>
skype: kuvarin
http://github.com/dallaylaen
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20170110/a7c70fab/attachment.html>


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