Integration / Acceptance тестирование с помощью Cucumber

1,496 views

Published on

Railsclub SPB, 26 Апреля 2009,
Евгений Большаков

Published in: Technology, Self Improvement
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,496
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Integration / Acceptance тестирование с помощью Cucumber

  1. 1. Integration / Acceptance тестирование с помощью Cucumber
  2. 2. О чем я не буду рассказывать <ul><li>Тестирование в общем </li></ul><ul><li>Методологии (BDD, etc) и подходы </li></ul><ul><li>Тестирование в браузере (Selenium, etc) </li></ul>О чем я не буду рассказывать
  3. 3. Интеграционные тесты <ul><ul><li>Проверяют приложение целиком – от обработки запроса, до работы с базой и отображения страницы </li></ul></ul>
  4. 4. Webrat <ul><ul><li>Webrat делает этот процесс веселее </li></ul></ul>
  5. 5. Все отлично, что еще нужно? <ul><ul><li>Тесты в качестве документации, а еще лучше – в качестве ТЗ или Stories, которые можно обсуждать и писать вместе с заказчиком </li></ul></ul>
  6. 6. Cucumber <ul><ul><li>Cucumber позволяет писать истории человеческим языком и использовать их для тестирования приложения </li></ul></ul>
  7. 7. Cucumber <ul><li>Step definitions </li></ul><ul><li>Webrat steps </li></ul><ul><li>Steps inside steps </li></ul><ul><li>Tables in step definitions </li></ul><ul><li>Step parameters are strings! </li></ul><ul><li>Testing emails </li></ul><ul><li>Sharing data between steps: instance vars vs explicit </li></ul><ul><li>Stubbing (Date) </li></ul>
  8. 8. Cucumber <ul><li>Use any testing framework </li></ul><ul><li>Organize features & steps </li></ul><ul><li>Use factories (Pickle) </li></ul><ul><li>Refactor (your World) </li></ul><ul><li>Run (cucumber --help, rake features, tags) </li></ul>
  9. 9. Cucumber I18N
  10. 10. Cucumber <ul><li>Не только для Rails и даже не только для Ruby (Selenium, Mechanize, etc) </li></ul><ul><li>Не только для web </li></ul><ul><li>Не только интеграционное тестирование </li></ul><ul><li>Быстрые высокоуровневые тесты </li></ul>
  11. 11. Cucumber vs Plain Integration Test <ul><li>Integration tests </li></ul><ul><ul><li>Встроены в Rails </li></ul></ul><ul><ul><li>Быстрее </li></ul></ul><ul><ul><li>Иногда легче разобраться что где </li></ul></ul><ul><li>Cucumber </li></ul><ul><ul><li>Более общий и функциональный инструмент </li></ul></ul><ul><ul><li>Легче читать (можно писать вместе с заказчиком) </li></ul></ul><ul><ul><li>Встроенная система повторного использования кода </li></ul></ul>
  12. 12. Ресурсы <ul><li>Testing Emails: http://drnicwilliams.com/2009/03/26/testing-outbound-emails-with-cucumber/ </li></ul><ul><li>Stubbing </li></ul><ul><ul><li>Rspec: http://www.brynary.com/2009/2/3/cucumber-step-definition-tip-stubbing-time (rspec) </li></ul></ul><ul><ul><li>Mocha: http://gist.github.com/80554 (mocha) </li></ul></ul><ul><li>Pickle: http://github.com/ianwhite/pickle/tree/master </li></ul><ul><li>Refactoring: http://drnicwilliams.com/2009/04/15/cucumber-building-a-better-world-object/ </li></ul><ul><li>Usage </li></ul><ul><ul><li>Testing capistrano recipies: http://pivotallabs.com/users/jdean/blog/articles/763-testing-capistrano-recipes-with-cucumber </li></ul></ul><ul><ul><li>Testing distributed systems: http://www.benmabey.com/2009/02/17/using-cucumber-to-integrate-distributed-systems-and-test-messaging/ </li></ul></ul><ul><li>How to write stories: http://dannorth.net/whats-in-a-story </li></ul>
  13. 13. Вопросы? Евгений Большаков email / jabber: eugene.bolshakov@gmail.com http://www.taknado.com http://github.com/eugenebolshakov Код к слайдам: http://github.com/eugenebolshakov/spbruby

×