Как писать интеграционные тесты JavaScript?

Я должен написать интеграционные тесты для приложения RequireJS. Я никогда не делал этого раньше и не нашел примеров в Интернете. Почему так мало информации по этому вопросу? Я прочитал много описаний того, что такое интеграционные тесты, но я до сих пор не уверен, как их писать. У меня нет кода сервера или базы данных для моего приложения, это означает, что я могу только протестировать совместную работу различных модулей, верно? Я уже пытался написать несколько тестов с Жасмин, например. когда render() вызывается в Module1, создается экземпляр Module2, а также вызывается Module2.render(). Module2.render() следует добавить HTML-код. Таким образом, я использовал jasmine-jquery.js, чтобы проверить, был ли добавлен html-код: expect($('#test1')).toExist();

Это интеграционный тест? Или это лучше добавить в модульные тесты?

Я также не уверен, смогу ли я писать интеграционные тесты с Nightwatch.js и будет ли это разумно. Сейчас я пишу системные тесты с помощью этого фреймворка, но это немного похоже на интеграционное тестирование, потому что я тестирую, работают ли компоненты вместе. Когда тест Nightwatch называется интеграционным тестом, а когда — системным?


person Garrarufa    schedule 25.06.2015    source источник
comment
Исходя из моего опыта написания модульных и интеграционных тестов, я неоднократно видел, как их путают. Мне нравится использовать следующее правило: Модульный тест проверяет одну часть функциональности, например общедоступную функцию; В ходе интеграционного теста проверяется несколько функций, которые должны взаимодействовать друг с другом определенным образом. На самом деле важно контролировать входные данные и знать ожидаемый результат в обоих случаях, независимо от определения теста.   -  person Jeremy    schedule 13.07.2015
comment
Определение @JeremyBrooks довольно хорошее, согласно программе Международного совета по квалификации тестировщиков программного обеспечения (ISTQ): istqb.org/downloads/syllabi/foundation-level-syllabus.html   -  person Jean-Rémy Revy    schedule 19.01.2016


Ответы (1)


я бы сказал, что тест «интеграция» должен проверять, как ваш код js «интегрируется» с остальной частью приложения. то есть, если он отправляет и получает правильные сообщения в / из бэкэнда, если он правильно взаимодействует с хранилищем браузера и т. д. То, что вы описываете, выглядит как модульный тест

я не знаю nightwatch но судя по их странице

Nightwatch.js — это простое в использовании решение для сквозного тестирования (E2E) на основе Node.js для браузерных приложений и веб-сайтов.

это должно сделать работу

person piotrek    schedule 25.06.2015
comment
будет ли это интеграционным тестом, если я использую поддельный сервер, который всегда отвечает одним и тем же сообщением, и проверяю, вызывает ли функция функцию обратного вызова после успешного запроса сервера? - person Garrarufa; 26.06.2015