Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #61 (permalink)  
Старый 04.06.2014, 22:19
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от kobezzza
http://jasmine.github.io/
Mocha или QUnit в разы удобней. ИМХО
Ответить с цитированием
  #62 (permalink)  
Старый 04.06.2014, 22:20
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от cyber
kobezzza, на таком примере вроде понятно,а взять чет по сложнее... за ссылку спс
там самое "сложное" - шпионы для тестирования ajax вызовов(опять же я так думаю), есть блог loftblog , там есть видео про тестирование http://loftblog.ru/tag/jasmine/

хотя проще наверное доки прочитать
Ответить с цитированием
  #63 (permalink)  
Старый 04.06.2014, 22:22
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
QUnit
Я пересел с qUnit как раз, т.к. когда тестов стало больше 100, то их поддержка стало проблемной, а в Jasmine удобная неограниченная система разделов и на мой взгляд очень приятный BDD синтаксис. Сейчас общее количество тестов на проекте у меня примерно 3к на Jasmine и пока всё хорошо.

С Mocha не работал, но когда прочитал, что там нужно ещё отдельно assert движок подключать, то выбрал Jasmine, т.к. там всё из коробки.
__________________
kobezzza
code monkey
Ответить с цитированием
  #64 (permalink)  
Старый 04.06.2014, 22:24
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от Shaci Посмотреть сообщение
там самое "сложное" - шпионы для тестирования ajax вызовов(опять же я так думаю), есть блог loftblog , там есть видео про тестирование http://loftblog.ru/tag/jasmine/

хотя проще наверное доки прочитать
Писать асинхронные тесты очень просто:

it('тесты', function (done) {
    setTimeout(function () {
        expect(true).toBeTruthy();
        done();
    }, 500);
});
__________________
kobezzza
code monkey
Ответить с цитированием
  #65 (permalink)  
Старый 04.06.2014, 22:28
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

kobezzza,
а там можно сделать так. что вот я написал тест для участка кода, и указал что ожидаю в таком то месте такой то тип переменной. И если вдруг в этом месте оно не такое мне алертовала консоль? А потом я мог например просмотреть все этапы изменения этой переменной в разных блоках кода и выявить где допустил ошибку
__________________
Научу себя плохому
Ответить с цитированием
  #66 (permalink)  
Старый 04.06.2014, 22:36
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от l-liava-l Посмотреть сообщение
kobezzza,
а там можно сделать так. что вот я написал тест для участка кода, и указал что ожидаю в таком то месте такой то тип переменной. И если вдруг в этом месте оно не такое мне алертовала консоль? А потом я мог например просмотреть все этапы изменения этой переменной в разных блоках кода и выявить где допустил ошибку
Unit-тесты работают с интерфейсом, т.е. если ты реализуешь какой то способ в API своей функции, то конечно же его можно слушать, а просто сказать, мол сделай брекпоинт на 21 строке и посмотри что там - конечно нельзя, а если бы было можно, то не нужно так делать
__________________
kobezzza
code monkey
Ответить с цитированием
  #67 (permalink)  
Старый 04.06.2014, 22:46
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от kobezzza
Я пересел с qUnit как раз, т.к. когда тестов стало больше 100, то их поддержка стало проблемной, а в Jasmine удобная неограниченная система разделов
Не помню таких проблем в Mocha или QUnit (modules).

Единственное чего и правда нет, так это вложенных кейсов
Что касается ассертов, то мне они нафиг не нужны, я не планирую писать true.should.be.ok. Собственно этим мне и не нравится Jasmine.

PS: положа руку на седце, мне не нравится не один из существующих фреймворков для тестирования. Но свой мне так и не удалось допилить до желаемого уровня.

Последний раз редактировалось monolithed, 04.06.2014 в 22:52.
Ответить с цитированием
  #68 (permalink)  
Старый 04.06.2014, 22:46
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
Unit-тесты работают с интерфейсом, т.е. если ты реализуешь какой то способ в API своей функции, то конечно же его можно слушать, а просто сказать, мол сделай брекпоинт на 21 строке и посмотри что там - конечно нельзя, а если бы было можно, то не нужно так делать
Тоесть я скармливаю тесту модуль со своей апихой, и он просто пробегается по ней и смотрит соответсвуют ли ожидания действительности? даже без сверхестественного обошлось что ли

Теперь передо мной стоит задача, че из всех либ для тестирования выбрать, но читаю про jasmine, там видно будет
__________________
Научу себя плохому
Ответить с цитированием
  #69 (permalink)  
Старый 04.06.2014, 22:49
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Цитата:
или QUnit (modules).
Может я что путаю, но там ведь нельзя делать:

module('1', function () {
    module('1.1', function () {
        module('1.1.1', function () {
             // и т.д.
        });
    });
});


Да и в любом случае мне нравится подход к синтаксису в Jasmine.

Цитата:
Собственно этим мне и не нравится Jasmine
Наш спор из серии: табы или пробелы

l-liava-l, если абстрагироваться совсем то схема такая: ты делаешь вызов своей функции и результат сравниваешь с ожидаемым, и если он не такой, то валится алерт.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 04.06.2014 в 22:53.
Ответить с цитированием
  #70 (permalink)  
Старый 04.06.2014, 22:50
Профессор
Отправить личное сообщение для l-liava-l Посмотреть профиль Найти все сообщения от l-liava-l
 
Регистрация: 14.03.2012
Сообщений: 1,808

Цитата:
l-liava-l, если абстрагироваться совсем то схема такая: ты делаешь вызов своей функции и результат сравниваешь с ожидаемым, и если он не такой, то валится алерт.
Да я пральна понял)
kobezzza,
Спасибо!)
__________________
Научу себя плохому
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смишных картинок тред megaupload Оффтопик 3448 03.07.2023 09:47
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Смешных историй тред monolithed Оффтопик 11 04.03.2015 04:20
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50