Разработка, основанная на тестах для библиотеки JavaScript
В настоящий момент я работаю над библиотекой JS для веб-службы, вы можете сравнить ее с Twitter Anywhere. Теперь я хочу сделать его более опытным.
Это непросто проверить, потому что он должен работать на каждом сайте, который хочет использовать его, и, конечно же, с каждым браузером.
Как я могу эффективно протестировать библиотеку?
Все запросы и ответы API находятся в JSON, есть ли хороший способ проверить эти вызовы?
Я знаю о Cucumber и js-test-driver.
Привет,
Chielus
Ответы
Ответ 1
Язык Javascript является динамичным по своей природе, поэтому он действительно дружелюбен к тестированию. Недавно я получил небольшой опыт тестирования javascript. Я переписал основные компоненты javascript, используя TDD, и получил четкий дизайн и более компактный код!
- unit test выбор схемы qUnit. Это очень легко начать с тестирования.
- функциональная тестовая среда выбора - funcunit.
Я сделал сообщение в блоге об испытании REST api с FuncUnit здесь.
Если вам нужны примеры тестов и реализации, вы можете проверить мой репозиторий github .
Не задавайте вопросов, просто начинайте тестирование:)
Ответ 2
Если вы знаете о jsTestDriver, я думаю, вы уже нашли хорошее решение?
Вы можете использовать его для автоматического запуска тестов в нескольких браузерах и возврата успеха или отказа.
Это отличает его от других инструментов, которые используют безгласные браузеры, так как с помощью jsTestDriver вы запускаете свои тесты в реальных браузерах, что, по-видимому, соответствует вашим требованиям.
jsTestDriver имеет свою ограниченную структуру утверждений, но вы можете подключать к нему других, включая QUnit, YUI и Jasmine.
Вы сказали выше в отношении Жасмина: "Я не думаю, что могу делать BDD, потому что это библиотека, которая должна работать со всеми типами сайтов". Я не уверен, что вы подразумеваете под этим?
Жасмин предоставляет все утверждения, чтобы вы делали те же тесты, что и QUnit. Он также позволяет вам "шпионить" над обратными вызовами Ajax, перехватывать JSON для проверки или даже изменения, а затем передать его на ваш обратный вызов по умолчанию. С помощью этого вы можете проверить ответ JSON, а затем снова проверить, когда ваш пользовательский интерфейс отреагировал на него правильным способом.