Как мне выполнить модульное тестирование таких вещей, как предварительная загрузка изображений с помощью JavaScript? - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь выполнить модульное тестирование функции веб-отслеживания JavaScript, потому что мы намереваемся представить ее как библиотеку и хотим убедиться, что ее интерфейс остается стабильным. Веб-отслеживание JavaScript работает аналогично предварительной загрузке изображений следующим образом:

if (document.images) {
    var image = new Image();
    image.onload = function () {
        ...
    };
    image.src = pixelUrl;
}

В модульном тесте (с js-testdriver) я сейчас пытаюсь проверить, что изображение было создано с правильным pixelUrl Я подумал, что мне нужно сделать что-то вроде этого:

call_the_reporting_function();

assertNotUndefined(document.images[0]);
assertNotUndefined(document.images[0].src);

Моя проблема сейчас в том, что первое утверждение уже провалилось. Кажется, что новое изображение не добавляется в document.images немедленно.

У кого-нибудь есть идеи, как правильно выполнять модульное тестирование таких вещей в JavaScript?

Спасибо

Stefan

1 Ответ

0 голосов
/ 19 октября 2011

Одно из возможных решений, которое мы только что выбрали, состоит в том, чтобы обойти проблему путем извлечения части, описанной выше, путем выполнения html-манипуляций и насмешек над ним.два недостатка: - нет смысла использовать платформу модульного тестирования на основе браузера (например, jsTestDriver, то есть то, что мы используем), если вы не используете части, специфичные для браузера - код не проверен, и вы должны убедиться, что онработает либо вручную, либо с использованием дорогостоящих тестов Selenium (где вы можете настроить прокси перед HttpClient и просто перехватить все запросы веб-отслеживания, выданные браузером. Утверждения выполняются на перехваченных запросах)

...