Разработка, основанная на тестах для библиотеки 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, а затем снова проверить, когда ваш пользовательский интерфейс отреагировал на него правильным способом.