Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

JavaScript Unit Testing Using Jasmine And Tools

889 views

Published on

Published in: Technology
  • Be the first to comment

JavaScript Unit Testing Using Jasmine And Tools

  1. 1. JavaScript Unit testing using jasmine and tools
  2. 2. По месту исполнения кода Серверный JS Клиентский JS jasmine-node браузер?
  3. 3. jasmine-node1. npm install jasmine-node -g2. jasmine-node specs/ *-spec.jsможно обернуть запуск тестов в package.json
  4. 4. jasmine-node Хорошо Плохо1) Есть полезные опций: 1) Если dom - то лучше --autorun отказаться --junitreport 2) не все опции работают как хотелось бы
  5. 5. browser?Headless:1. zombie.js (эмуляция)2. PhantomJS (webkit)Real browser:3. jsTestDriver4. testacular5. selenium webdriver
  6. 6. headless1. zombie.js2. PhantomJS
  7. 7. zombie.js1. npm install zombie2. writing async tests using jasmine-node
  8. 8. zombie.js Хорошо Плохо1) fast 1) Just emulation...2) headless 2) using jasmine-node thanks, but no!
  9. 9. PhantomJS1. npm install phantomjs -g1. grunt-jasmine-runner2. phantom-jasmine
  10. 10. PhantomJS Хорошо Плохо1) fast 1) Все инструменты не очень2) headless комфортны для использования* Только WebKit*кроме testacular, но о нем позже
  11. 11. Browsers for real
  12. 12. jsTestDriver Хорошо Плохо1) Хорошая документация 1) Не на github2) Зрелая библиотека с 2) Говорят работает неустоявшимся API стабильно3) Отличная с IDE 3) Нужна JVM
  13. 13. Testacular1. npm install testacular@canary -g2. testacular init <config_name>3. testacular start <config_name>
  14. 14. Testacular Хорошо Плохо1) Все браузеры + phantomjs 1) Необходимо заранее2) Приличная документация продумывать разрешение3) Слежение за изменением зависимостей js файловфайлов4) Режим сервера/одинпрогон5) Легкая интеграция с IDE6) JUnit + code coverage
  15. 15. Selenium webdriver1. https://github.com/larrymyers/jasmine-reporters/tree/master/src ○ jasmine.junit_reporter.js (допиливаем)2. jasmine.getEnv().addReporter( new jasmine.JUnitXmlReporter(, false) );
  16. 16. Selenium webdriver3. спеки в листьяхhttp://jenkins.bizaccount.test:8081/tests-http://jenkins.bizaccount.test:8081/tests/profile4. selenium -> return jasmine.JUnitXmlReporter.output
  17. 17. Selenium webdriver Хорошо Плохо1) Универсально 1) Отностильно долгое время feedbackа2) Зависимости JS файлов 2) Нет кучи плюшек, в томрешаются на уровне числе, пока что coverageприложения3) Разработчики вообще незамарачиваютсяорганизацией тестирования
  18. 18. Заключение1. Если headless - то предпочтительнее PhantomJS2. Real Browser лучше3. testacular лучше
  19. 19. СсылкиСтатья содержит много полезных ссылок на почти все упомянутое: 1. http://anykeytocreate.blogspot.ru/2012/11/unittesting-for-javascript-environment.htmlJasmine: 2. http://pivotal.github.com/jasmine/Headless: 3. http://zombie.labnotes.org/ 4. http://phantomjs.org/Real Browsers: 5. http://code.google.com/p/js-test-driver/ 6. http://vojtajina.github.com/testacular/ 7. http://seleniumhq.org/docs/03_webdriver.jspПообсуждать в confluence 8. http://confluence.dvlp.2gis.local/pages/viewpage.action?pageId=104465152

×