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

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

# ... 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
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить