Можно ли написать "skip(), если не ok()" с Test::More?

Я просмотрел документацию и не могу найти окончательный ответ на свой запрос.

Во многих моих тестах выполнение SKIP блок является условием успеха предыдущего теста.

Так, например, вот что я пишу:

ok( @results > $threshold , 'Threshold met' );

SKIP: {
        skip 'due to insufficient results', 3
          unless @results > $threshold;
        # ...
}

Если мой тест изменится, мне не нужно менять два местоположения, поэтому мне нужен эквивалент DRY-er:

SKIP: {
        skip 'due to insufficient results', 3
          unless ok( @results > $threshold , 'Threshold met' );
        # ...
}

Мои первоначальные тесты показывают, что эти два фрагмента эквивалентны.

Однако что-то в документации попалось на глаза:

каждый SKIP блок должен иметь метку SKIP, или же Test::More не может творить свою магию.

Меня беспокоит то, что магия может распространиться на ok() как сейчас внутри блока.

1 ответ

Решение

Да. Почему бы не быть?

Другие вопросы по тегам