2016-10-22 1 views
1

Я написал библиотеку/модуль JavaScript, которая вызывает вызовы API для спокойной веб-службы и предоставляет методы для пользователей этой библиотеки. Эта библиотека построена таким образом, что один и тот же код используется как для библиотеки переднего плана, так и для модуля npm (преобразованный код с использованием браузера).Тестирование модуля для JavaScript и Mocha

Однако сейчас я планирую написать модульные тесты для того же самого, и это первый раз, когда я написал всю библиотеку. Итак, я посмотрел на библиотеки, такие как мокка и жасмин, которые кажутся хорошим выбором для него. Я думаю написать тесты в Мокке. Но я не совсем уверен, как начать с этих тестов.

Кроме того, должны ли тесты, которые проверяют функциональность, например, образец потребителя, называться интеграционными испытаниями или должны быть объединены с модульными тестами?

Я был бы рад, если кто-нибудь может порекомендовать некоторые образцы тестов на github или какой-то учебник для новичков Mocha. Я был бы рад рассмотреть другие модульные модули тестирования.

Заранее спасибо

+0

Я добавил к этому пункт, не уверенный, почему люди минус очки для новичков. –

ответ

1

Я имею в виду, чтобы писать тесты на Мокко. Но я не совсем уверен, как начать с этих тестов.

тест Unit обычно включает в себя только функциональный тест, за исключением интеграции и тестирования регрессии, которая означает, что вы должны проверить каждый функции, как это возможно, как вы можете.

Базовый пример такой.

function alwaysReturnTrue(){ 
    return True; 
} 
assertTrue(alwaysReturnTrue()); 

О тестовых рамках единицы, такие как mocha, Jasmine, они предназначены только для инициирования рамки для запуска теста. Большинство из них предоставят базовую функцию assert, такую ​​как assertTrue, assertFalse, assertEqual ... и т. Д.

По-видимому, этих методов assert недостаточно, чтобы проверить все угловые случаи.

  • функция обратного вызова
  • функция называется последовательность
  • функции называются параметрами
  • исключение триггера
  • Поддельный XHR или сервер

Для обработки этих веществ, она может быть завершена популярным решение, которое называется sinon.


Кроме того, должен ли тесты, которые проверяют функциональность как образец потребитель называться интеграциями испытаний или должны быть те, в сочетании с модульными тестами?

Нет, Интеграция тест обычно повторяют всю последовательность вашего программного обеспечения, а не одну функцию. Эти вещи также могут быть выполнены синоном.(Fake XHR или сервер)

For example: without UI 
Login() -> Send exit request to serverlet -> Logout() 
Login() -> Send exit request with save="true" data to serverlet -> Logout() 

Как я уже говорил выше, у нас еще есть еще один тест, который не обсуждался. Он называется Регрессионный тест, который является самым сложным тестом. Для этого есть две известные библиотеки тестирования UI: selenium и phantomjs.

For example: with UI 
Login() -> Click Button Exit() -> Logout() 
Login() -> Click Checkbox A() -> Click Button Exit() -> Logout() 

В целом, завершен процесс тестирования программного обеспечения есть три процесса. Однако в реальном мире время ограничено. Если размер вашего проекта невелик, вы можете пропустить тест регрессии или интеграции.

step: unit test -> integration test -> regression test 
time: (short)  (longer)   (very long)