середа, 2 жовтня 2013 р.

ЯТТП: ДжаваСкрипт фреймворк для юніт тестів - QUnit.

Я тут трішки подивився за JavaScript фреймворком для юніт тестів, попиваючи мате. 
Раніше сама ідея писати тести для JavaScript здавалася мені дикою втратою часу. Але новий час - нові аплікації. Для безсерверної веб аплікації JavaScript виконує не тільки функції представлення, а й контролера з доступом до даних. Саме цей доступ я і вирішив покрити юніт тестами.
Насправді доступне не маленьке коло фреймворків, але деякі з них недороблені (принаймі я не побачив гарної документації, прикладів застосування), деякі вже не підтримуються. Тож мій вибір впав на QUnit - простий і документований від jQuery команди.
Під капотом у цього фреймворку:

  • Три типи assert'ів: ok, equal, deepEqual (для порівняння складних об'єктів);
  • Синхронні і асинхронні тести. Приємно враження справили асинхронні тести - зрозумілі і не вимагали танців з бубном.
  • Групування тестів. З можливістю задати тест, який буде виконуватися до чи після кожного тесту в групі.
Почати писати тести з використання QUnit дуже просто. Потрібно створити html файл:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>QUnit</title>
        <link rel="stylesheet" href="qunit.css">
    </head>
    <body>
        <div id="qunit"></div>
        <div id="qunit-fixture"></div>
        <script src="qunit.js"></script>
        <script src="tests.js"></script>
    </body>
</html>


Потім tests.js для тестів:

 test( "Мій перший тест на JS", function() {
    ok( true, "Пройшов!" );
});


І на завершення, звідки брати qunit.css і qunit.js - CDN в низу сторінки.

QUnit простий як дошка і легкий для використання. Якщо вам потрібно щось серйозніше з інтеграцією під різні платформи (від nodejs i .NET до Ruby i Django) я би радив подивитися на jasminejs.

Немає коментарів: