Компоненти. конзола за тестване

текуща версия срещу. v1

Компонентите могат да бъдат тествани в конзолата като нормалните модули node.js. За съжаление текущата версия в този случай има проблеми с използването на зависимости, например свързани с DOM. Тоест, ако тествам компонента към конзолата, като стартирам, да речем, node node mocha. , не мога просто да изисквам друг свързан с DOM компонент. Във всеки случай, в конзолата, require ще вземе модула node.js, а не компонента. И няма обект на документ в модула domify на node.js. В бъдещите версии на конструктора на компоненти ситуацията ще се промени. Вижте https://github.com/component/component/issues/41. Засега можете да използвате phantom, за да тествате тези компоненти в конзолата.

В текущата версия трябва да използвате (нещо повече, в тялото на компонента, но само за целите на тестването) нещо като (вижте компонент/рутер):

Няма да се спирам на това, нека изчакаме v1. В тази публикация първо ще разгледаме как работи модулното тестване на компоненти на ниско ниво, т.е. ръчно, тогава ще пиша за автоматизирането на този процес. За интегрираното тестване на js приложения също е писано много, няма да се спирам и на това.

Прости компоненти, които нямат разлики (с изключение на обвивката) от модул с паралелен възел, като например компонент/индексоф, компонент/всеки, могат да се използват като зависимости точно сега, мока тестовете в конзолата ще работят.

единица срещу интегрални тестове

Какво е интегрален тест е ясно - тестваме самото приложение, в бойна позиция (ако игнорираме стабовете и подигравките). Използваме Cucumber, Selenium, Capybara и виждаме, че реакцията на приложението като цяло е в съответствие с очакванията. Единичният тест е тест на единичен метод в компонент. Само този метод се извиква и ако е засегнато нещо друго, то е такаЗле. Такова е родното определение. Компонентите обаче са проектирани по този начин. Те имат вътрешни функции, които не са достъпни отвън и, разбира се, не са достъпни за тестване. И експортирани методи, които сме напълно способни да извикаме отвсякъде.

тест/test.js

Нека създадем най-простия компонент за теста на конзолата. Да предположим, че трябва да открием, да речем, следващата буква. Забравихме какво идва след c - d или d. Или, да речем, след ξ - η или λ ? (Този метод на „играчка“ е добър само за знаци без ударения.)

Да предположим, че имаме два метода в компонента, sym за преобразуване на знак и дума по дума. В него ще използваме готовия компонент / компонент карта за удобство.

компонентът трябва да съдържа само

линията if (!(this instanceof example)) return new example() е магия, което означава, че няма да е необходимо да пишем новия оператор, когато извикваме компонента.

package.json, мока & Трябва

Сега всъщност използваме не компоненти, а node.js, така че нека създадем файл package.json

във файла package.json посочете зависимостите, от които се нуждаем

map-component е необходим като пример за зависимост за работата на компонента, а mocha и трябва да са за провеждане на тестове.

makefile & test.js

за да не извикваме тестове в конзолата с ръцете си, ще напишем тестовия елемент във файла Makefile;

mocha търси тестове в тестовата директория по подразбиране. Нека създадем файл test.js

Компонентите обаче са проектирани да работят в браузъра. Така че тестването в конзолата е по-скоро изключение. Тестването трябва да се извършва в браузъра и да е удобно. Вижте следващия. секции.

Hardcore conf в C++. Каним само професионалисти.