Исходный код для better-tape
https://github.com/amrish7/better-tape
Лента является одним из лучших инструментов для тестирования JavaScript. Он легкий, избегает глобальных переменных и довольно быстр по сравнению с другими средами тестирования, такими как Mocha и Jasmine. Лента вместе с sinon
и proxyquire
позаботится обо всех моих потребностях в тестировании проектов myJavaScript на работе и вне ее.
Несмотря на свое величие, лента имеет довольно много недостатков, таких как отсутствие крючков жизненного цикла, что было огромным преимуществом для таких людей, как я, которые мигрировали с Mocha
. better-tape
был создан, чтобы восполнить некоторые из этих пробелов.
[email protected]
поддерживает следующие функции
- Крючки жизненного цикла для верхнего уровня и вложенных тестовых случаев (также известные как хуки
before
иafter
) - Поддержка
only
API во вложенных тестовых примерах
Есть много похожих форков tape
, которые предлагают аналогичные функции, но ИМХО, они имеют ограниченные реализации жизненного цикла и предлагают только хуки до/после для вложенных тестовых случаев.
Установить
npm i better-tape --save-dev
использование
Поскольку better-tape
разветвляется из tape
, обратитесь к ленте README для получения полной документации. В этой статье я расскажу только о дельта-функциях.
$ better-tape tests/**/*.js
Новые возможности
- Поддержка хуков
before
иafter
для простых невложенных тестов
Вывод
TAP version 13
# Subtest: test/sample.js
# Test 1
>> INSIDE before
ok 1 Executing Test 1
>> INSIDE after
# Test 2
>> INSIDE before
ok 2 Executing Test 2
>> INSIDE after
1..2
# tests 2
# pass 2
# ok
ok 1 - test/sample.js # time=109.678ms
1..1
# time=122.405ms
2. Поддержка before
и after
ловушек для вложенных тестов
Вывод
TAP version 13
# Subtest: test/sample.js
# Suite 1
>> INSIDE before
# Nested test 1
>>>> INSIDE NESTED before
ok 1 Executing Nested Test 1
>>>> INSIDE NESTED after
# Nested test 2
>>>> INSIDE NESTED before
ok 2 Executing Nested Test 2
>>>> INSIDE NESTED after
>> INSIDE after
1..2
# tests 2
# pass 2
# ok
ok 1 - test/sample.js # time=102.496ms
1..1
# time=115.107ms
3. Поддержка ONLY
во вложенных тестовых случаях
Использование only
с вложенными тестовыми примерами. Поддерживается только в [email protected]
Вывод
# Subtest: test/only6.js # only6 nested only test # nested ONLY test-3 ok 1 Only nested test case that should have been run 1..1 # tests 1 # pass 1 # ok ok 1 - test/only6.js # time=130.732ms 1..1 # time=144.871ms
Не стесняйтесь ознакомиться с полной кодовой базой на https://github.com/amrish7/better-tape, а для запросов новых функций создайте задачу с меткой enhancement
и добавьте в нее подробности.