$30 off During Our Annual Pro Sale. View Details »

Testing Any Website Written in Any Language With Capybara and RSpec

Testing Any Website Written in Any Language With Capybara and RSpec

Presented at Barcamp Bangkhen 2014 on November 16, 2014.

Prem Sichanugrist

November 16, 2014
Tweet

More Decks by Prem Sichanugrist

Other Decks in Technology

Transcript

  1. Testing Any Website
    Written in Any Language
    With Capybara and RSpec

    View Slide

  2. Prem Sichanugrist
    @sikachu
    /sikachu

    View Slide

  3. Testing

    View Slide

  4. Acceptance Testing

    View Slide

  5. High-level Testing

    View Slide

  6. Assert From User's
    Perspective

    View Slide

  7. Whole-Stack Testing

    View Slide

  8. Acceptance Testing
    Frameworks
    • Cucumber (Ruby)
    • Mocha (JavaScript (node.js))
    • Ranorex (C#, VB.NET)

    View Slide

  9. Capybara + RSpec
    (Ruby)

    View Slide

  10. Why You Should Write
    Acceptance Test

    View Slide

  11. (this slide is intentionally left blank)

    View Slide

  12. TL;DR
    • User flow is well-defined
    • Prevent future regression after introducing new
    feature

    View Slide

  13. Why Capybara + Rspec?

    View Slide

  14. Clean & Clear Syntax

    View Slide

  15. Very Well-Maintained

    View Slide

  16. Very Flexible
    Easily swapping between drivers

    View Slide

  17. Requirements

    View Slide

  18. Requirements
    1. RSpec - Testing Framework

    View Slide

  19. Requirements
    1. RSpec - Testing Framework
    2. Capybara - Providing DSL for Testing

    View Slide

  20. Requirements
    1. RSpec - Testing Framework
    2. Capybara - Providing DSL for Testing
    3. Capybara Webkit - Webkit Backend with JS support

    View Slide

  21. Demo

    View Slide

  22. Steps
    • Install dependencies using Bundler
    • RSpec, Capybara, Capybara Webkit
    • Run RSpec install
    • Require Capybara in spec_helper
    • Set Webkit as the driver
    • Done, start writing test!

    View Slide

  23. http://git.io/bcbk-testing
    Demo Source Code

    View Slide

  24. Before we're done ...
    • Bangkok.rb
    • Metting every last Saturday afternoon
    • http://bit.ly/bangkokrb (Google Groups)
    • November Meeting - November 29, 2014
    • Sign up: http://bit.ly/bangkokrb-nov2014

    View Slide

  25. Thank You!
    Any Questions?
    Code: http://git.io/bcbk-testing
    Slide: http://bit.ly/bcbk-testing
    Follow me: https://twitter.com/sikachu

    View Slide