Pull to refresh
109
0
Олег @Olegas

Fullstack-разработчик

Send message
Нет, баг в matchesSelector. nextUntil сводится к filter который пытается использовать matchesSelector.

И да, похоже вы правы, в Chrome 7, например, баг не воспроизводится…

В документации к jQuery теперь все значения аттрибутов — в кавычках, т.е. это не баг. api.jquery.com/category/selectors/

В IE8 это также не баг — просто в IE8 он ЕЩЕ не реализован. Я так понял что реализацию подобного функционала jQuery «лоббировали» сами.

«The jQuery project petitioned the browsers to add the new matchesSelector method (writing up a test suite, talking with vendors, and filing bugs)» (от сюда: blog.jquery.com/2010/10/16/jquery-143-released/)
IDE — хорошо + к этому можно внести JSLint прямо в pre-commit hook.

Ошибки в IDE можно игнорировать, а вот то, что у тебя код не комитится — с этим уже не поспоришь =)
Jetbrains PHPStorm имя этой IDE. Все из вышеуказанного — ловит.
Они не нужны пока пишем простые вещи. Для вещей масштаба jQuery и ExtJS такие тесты — необходимость (кстати, они у них есть).

Для интерфейсного тестирования попробуйте Selenium.

Из SVN взял бинарник? Или сам собрал из сорцов?
Возможно из-за того, что Prototype грешит модификацией прототипов встроенных объектов JS.
Собственно они как-раз отвечают, что асинхронный API есть, но выложена версия без каких-то критикал-багфиксов

«We've fixed several critical bugs since then. I'll let Cory know we should release an updated version.»
А что конкретно и как не дружило?
Хм… когда я его пробовал он там не работал как надо. Может быть с тех пор обновили билд, надо проверить.
Пока они не сделают поддержку асинхронных тестов (сейчас ее нет в продакшене) судя по всему будет не легко…
Текущая версия не умеет делать асинхронные тесты. Я для этого использую различные mock'и. Уже сейчас на странице проекта есть wiki-страница описывающая методику асинхронного тестирования, но готовых бинарников пока нет, транк проекта, насколько я понимаю, сейчас не стабильный.

Есть различные сторонние варианты использования тестов QUnit (которые умеют делать асинхронность) и js-test-driver. Они описаны на wiki проекта и комментариях к ним.
Похоже вы невнимательно читали статью…

1. Запускаем сервер
2. Подключаем к нему все браузеры
3. Оставляем работать навсегда

Далее…

1. Запускаем среду исполнения тестов
2. Получаем отчет об ошибках
3. При необходимости исправить ошибки и повторить с п. 1

Сервер и браузеры могут жить вечно. Тесты запускаются вами или из IDE, среда исполнения подключается к серверу, выполняет в нем тесты (во всех подключенных браузерах, сама, автоматом, браузеры больше можно не трогать), вы получаете результат.
js-test-driver это именно среда запуска юнит-тестов. Не вполне ясно как его скрутить с тем же Selenium'ом.
Ему без разницы где гонять тесты. Какой браузер натравите на сервер и сделаете сapture — тот и будет гонять тесты. Можно хоть все имеющиеся подключить, и еще с других ОС удаленно тоже подключиться и на них тоже гонять.

Ошибка работы с дом моделью можете отлавливать через обычные assert*. document, window и любые производные от них (естественно) доступны в коде тестов.

+ он умеет декларативное добавление HTML на страницу прямо во время теста.
И да, клонируйте меня дважды пожалуйста.
Ну почему же Елена Сагалаева читает одновременно с круглым столом по системам управления версиями =(
$('.some').click(function(){
// нам здесь нужен бы контекст, но хочется взять того, на ком горит событие...
  this..... // <-- в таком случае как лучше поступать, как считаете?

}.bind(ctx));
С помощью JAML замену атрибутов после генерации сделать не удастся, это так.
Вот табличка с персонами…

Jaml.register('table', function(personBook) {
table(
tr(th('Name'), th('Balance')),
Jaml.render('tableItem', personBook.persons);
);
});

Jaml.register('tableItem', function(person) {
tr(
{cls: person.balance<0?'red':'green', id: person.id },
td(person.name),
td(person.balance)
);
});

Jaml.render('table', personBook);

// personBook = { persons: [ Your array here ] };

Вот UL

Jaml.register('defaultUl', function(itemsContainer) { // Это вместо defaultUl
ul(Jaml.render(itemsContainer.desiredTamplateName, itemsConteiner.items); // Так можно заменить трансформацию.
});

Jaml.register('li-item', function(item) {
li({id: item.id }, item.name);
});

Jaml.render('defaultUl', { desiredTemplateName: 'li-item', items: [] );

Да, различие есть, нет вашей функции трансформации. Но это имхо не всегда плюс, получается очень размазанная по коду шаблонизация (один шаблон и куча разных функций трансформации). В случае JAML да, придется вместо каждой трансформации зарегистрировать свой шаблон элемента.

Information

Rating
Does not participate
Location
Россия
Works in
Date of birth
Registered
Activity