Есть ли у Test :: More какой-то механизм для запуска блока кода перед каждым подтестом? Я нахожу, что я пишу одинаковые аранжировки на каждом тесте, и я хотел бы облегчить себе жизнь, поставив его в блок или что-то еще? Я посмотрел на perldocs, но я не видел ничего специально построенного для этого?Perl Test :: More Before Block
0
A
ответ
6
Довольно легко сделать самостоятельно:
use Hook::LexWrap qw(wrap);
wrap $_, pre => sub { ... }
for qw(is ok ...);
1
Test::More
«s тесты, как запустить Test::Builder::Module::builder
перед каждым испытанием. Вы можете заменить эту реализацию этим.
{ package Test::Builder::Module;
my $old_imp = \&Test::Builder::Module:builder;
no warnings 'redefine';
sub builder {
Mypackage::setup_test();
goto &$old_imp;
}
}
И если это кажется слишком опасным, он на самом деле называет это так:
sub is ($$;$) {
my $tb = Test::More->builder;
return $tb->is_eq(@_);
}
Таким образом, вы можете просто нажать, в реализации builder
для Test::More
, так как он вызывает один в его родительский класс:
{ package Test::More;
sub builder {
&stuff_I_want_to_do;
my $inv = shift;
return $inv->SUPER::builder(@_);
# OR return Test::Builder->new;
}
}
Смежные вопросы
- 1. @using block before @ Html.BeginForm
- 2. Пересечение переменных в Perl Test :: More .t file
- 3. Напишите собственный тестовый модуль Perl, который использует Test :: More
- 4. Perl Carp: test test
- 5. Angular2 test logic before .subscribe
- 6. PL/SQL Block Function & Test
- 7. Perl Unit Test Mocking
- 8. Jmeter close connection before my test finish
- 9. Что такое JUnit @Before и @Test
- 10. Исключение Escaping Perl 'eval' block
- 11. Существуют ли соглашения для имен функций при использовании Perl Test :: More?
- 12. Каков самый идиоматический способ эмуляции теста Perl :: More :: done_testing?
- 13. В Haskell, почему мне нужно поставить $ before my do block?
- 14. Parse.Promise in mocha before() block всегда вызывает таймаут
- 15. return different value from a before do block in sinatra
- 16. before (: each) vs just before
- 17. Как я могу проверить STDERR с помощью Test :: More?
- 18. perl test suite для API
- 19. fast perl t-test function
- 20. perl eval block throwing execptions без ошибок
- 21. Perl ifelse и else-block not working
- 22. Как изменить стандартный модуль Module :: Build/Test :: More из «lib» на что-то еще?
- 23. Есть ли способ, чтобы субтитры Test :: Class «Тесты» всегда были такими же, как Test :: More?
- 24. Css псевдоэлемент :: before (2); : before and :: before
- 25. Spring AOP - @Pointcut: @Before совет для @test методов не работает
- 26. Получить имя исполняемого @Test метода в @Before в JUNIT
- 27. @After @Before используется только один раз, несколько @test
- 28. Как делиться @Before и @Test среди классов в Selenium 2?
- 29. perl Test :: MockModule with DB acces
- 30. В чем разница между ($ test) = (@test); и $ test = @test; в Perl?
Не считается ли это важной частью испытаний, чтобы иметь полностью независимые устройства? Так или иначе. Вы всегда можете использовать функции, которые обертывают ваши тестовые значения и передают их в качестве параметров функции 'Test :: More'. –
Возможно, вы можете использовать 'subtest'. – JRFerguson
Перед тем, как блок, к которому я привык, является excecute перед каждым тестом, поэтому он полностью независим. В качестве временного решения я создал функцию, называемую arr(), которая делает это для меня. Тем не менее, я пытался использовать структуру. –