3 способа автоматического тестирования Javascript

Опубликовано: 07.10.2017

видео 3 способа автоматического тестирования Javascript

Введение в Karma. Урок 1.

С++ я уважал за мощь и строгость, Руби обожаю за работу с строками, массивами и хэшами, но к Javascript всегда относился и продолжаю относится холодно. Мне не нравится как осуществляется работа с this, смущает обилие операторов и зарезервированных слов undefined, null, Infinite, Nan, ==, ===, а также я плохо ориентируются в колбеках. Кроме того, я не прочитал ни одной книги по Javascript, что конечно же не способствует установлению приятельских отношений с этим языком.



Однако в ближайшие лет 5 вряд ли появится альтернатива для разработки на стороне клиента, поэтому с javascript придется работать еще очень долго. В проекте, в котором я сейчас работаю, накопилось достаточно большое количество клиентского кода и пришла пора его тестировать автоматически. Так как тема для меня новая, то я провел несколько эспериментов и сегодня хочу предложить вашему вниманию 3 простых способа сделать ваш javascript более надежным.


Ошибки в JavaScript / Введение в программирование, урок 7 (JavaScript ES6)

Оговорюсь, что у нас простой интерфейс, однако есть сложные алгоритмические куски кода на javascript. Поэтому наши задачи идеально подходят под классическое юнит-тестирование, про которое я буду рассказывать сегодня. Как тестировать сложный UI я пока не знаю, так как с такой задачей еще не сталкивался.


Google PageSpeed Insights на 100% - часть 1

Способ 1. ExecJS

Предположим, что нам нужно протестировать функцию, которая удаляет все элементы массива, совпадающие с заданным:

// Удаляет все элементы e из массива Array . prototype . remove = function ( e ) { for ( var i = 0 ; i < this . length ; i ++ ) { if ( this [ i ] === e ) { this . splice ( i , 1 ); i -- ; } } return this ; };

Автоматические тесты запускаются на сервере после каждого комита, поэтому желательно, что бы js-тесты встроились в этот процесс. К счастью в любом рейлс-приложении у нас уже есть все необходимые компоненты. Гем execjs , который используется при компилиции coffee-ассетов, можно использовать для выполнения произвольного кода на сервере.

rss