04.06.2014, 22:19
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от kobezzza
|
http://jasmine.github.io/
|
Mocha или QUnit в разы удобней. ИМХО
|
|
04.06.2014, 22:20
|
|
:-/
|
|
Регистрация: 28.09.2009
Сообщений: 1,126
|
|
Сообщение от cyber
|
kobezzza, на таком примере вроде понятно,а взять чет по сложнее... за ссылку спс
|
там самое "сложное" - шпионы для тестирования ajax вызовов(опять же я так думаю), есть блог loftblog , там есть видео про тестирование http://loftblog.ru/tag/jasmine/
хотя проще наверное доки прочитать
|
|
04.06.2014, 22:22
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Я пересел с qUnit как раз, т.к. когда тестов стало больше 100, то их поддержка стало проблемной, а в Jasmine удобная неограниченная система разделов и на мой взгляд очень приятный BDD синтаксис. Сейчас общее количество тестов на проекте у меня примерно 3к на Jasmine и пока всё хорошо.
С Mocha не работал, но когда прочитал, что там нужно ещё отдельно assert движок подключать, то выбрал Jasmine, т.к. там всё из коробки.
|
|
04.06.2014, 22:24
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от Shaci
|
там самое "сложное" - шпионы для тестирования ajax вызовов(опять же я так думаю), есть блог loftblog , там есть видео про тестирование http://loftblog.ru/tag/jasmine/
хотя проще наверное доки прочитать
|
Писать асинхронные тесты очень просто:
it('тесты', function (done) {
setTimeout(function () {
expect(true).toBeTruthy();
done();
}, 500);
});
|
|
04.06.2014, 22:28
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
kobezzza,
а там можно сделать так. что вот я написал тест для участка кода, и указал что ожидаю в таком то месте такой то тип переменной. И если вдруг в этом месте оно не такое мне алертовала консоль? А потом я мог например просмотреть все этапы изменения этой переменной в разных блоках кода и выявить где допустил ошибку
__________________
Научу себя плохому
|
|
04.06.2014, 22:36
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от l-liava-l
|
kobezzza,
а там можно сделать так. что вот я написал тест для участка кода, и указал что ожидаю в таком то месте такой то тип переменной. И если вдруг в этом месте оно не такое мне алертовала консоль? А потом я мог например просмотреть все этапы изменения этой переменной в разных блоках кода и выявить где допустил ошибку
|
Unit-тесты работают с интерфейсом, т.е. если ты реализуешь какой то способ в API своей функции, то конечно же его можно слушать, а просто сказать, мол сделай брекпоинт на 21 строке и посмотри что там - конечно нельзя, а если бы было можно, то не нужно так делать
|
|
04.06.2014, 22:46
|
Особый гость
|
|
Регистрация: 02.04.2010
Сообщений: 4,260
|
|
Сообщение от kobezzza
|
Я пересел с qUnit как раз, т.к. когда тестов стало больше 100, то их поддержка стало проблемной, а в Jasmine удобная неограниченная система разделов
|
Не помню таких проблем в Mocha или QUnit ( modules).
Единственное чего и правда нет, так это вложенных кейсов
Что касается ассертов, то мне они нафиг не нужны, я не планирую писать true.should.be.ok. Собственно этим мне и не нравится Jasmine.
PS: положа руку на седце, мне не нравится не один из существующих фреймворков для тестирования. Но свой мне так и не удалось допилить до желаемого уровня.
Последний раз редактировалось monolithed, 04.06.2014 в 22:52.
|
|
04.06.2014, 22:46
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
Unit-тесты работают с интерфейсом, т.е. если ты реализуешь какой то способ в API своей функции, то конечно же его можно слушать, а просто сказать, мол сделай брекпоинт на 21 строке и посмотри что там - конечно нельзя, а если бы было можно, то не нужно так делать
|
Тоесть я скармливаю тесту модуль со своей апихой, и он просто пробегается по ней и смотрит соответсвуют ли ожидания действительности? даже без сверхестественного обошлось что ли
Теперь передо мной стоит задача, че из всех либ для тестирования выбрать, но читаю про jasmine, там видно будет
__________________
Научу себя плохому
|
|
04.06.2014, 22:49
|
|
Быдлокодер;)
|
|
Регистрация: 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, 04.06.2014 в 22:53.
|
|
04.06.2014, 22:50
|
Профессор
|
|
Регистрация: 14.03.2012
Сообщений: 1,808
|
|
Цитата:
|
l-liava-l, если абстрагироваться совсем то схема такая: ты делаешь вызов своей функции и результат сравниваешь с ожидаемым, и если он не такой, то валится алерт.
|
Да я пральна понял)
kobezzza,
Спасибо!)
__________________
Научу себя плохому
|
|
|
|