Your SlideShare is downloading. ×
  • Like
Brownie
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Brownie

  • 1,480 views
Published

Yokohama.pm #8

Yokohama.pm #8

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,480
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Brownie Masaki Nakagawa / @ikasam_a Yokohama.pm #8 (yokohama.pm.org/2011/10/yokohamapm-8.html)2011 11 18
  • 2. YAPC::Asia Tokyo 2011 yapcasia.org/2011/2011 11 18
  • 3. Perl Testing Consideration (seen from other languages) Masaki Nakagawa YAPC::Asia Tokyo 2011 (yapcasia.org/2011/talk/80)2011 11 18
  • 4. Rails Testing • Perspective • UnitTest, End-to-End • Frameworks • Test::Unit (+ Shoulda), RSpec, Cucumber • Browser Integration • Capybara (rack-test, Selenium, Envjs, ...) • Test Double • rspec-mocks, rr, WebMock2011 11 18
  • 5. Weakness • Expectation and Verification • vs. rr, rspec-mocks, mocha, ... • Browser Integration API • vs. Capybara, Webrat, ... • Naming of Test Double modules • Test::Mock::Guard is “Stub” module2011 11 18
  • 6. Comparision • Pros • TAP-based Test Description • Many Helpful Modules • Cons • Non-Uniform Browser Integration • Poor Expectation and Verification2011 11 18
  • 7. Capybara github.com/jnicklas/capybara2011 11 18
  • 8. Capybara simulates how a real user would interact with a web application. It is agnostic about the driver running your tests and currently comes with Rack::Test and Selenium support built in.2011 11 18
  • 9. within("#session") do fill_in Login, :with => user@example.com fill_in Password, :with => password end click_link Sign in2011 11 18
  • 10. The DSL2011 11 18
  • 11. Drivers RackTest Selenium HtmlUnit WebKit (QtWebKit) Envjs Zombie.js2011 11 18
  • 12. Brownie github.com/masaki/Brownie2011 11 18
  • 13. Inspired by Capybara2011 11 18
  • 14. OO Style my $session = Brownie::Session->new; $session->visit(‘http://example.com’); $session->fill_in(Login => user@example.com); $session->fill_in(Password => password); $session->click_link(Sign in);2011 11 18
  • 15. DSL Style (Not yet) use Brownie::DSL; visit ‘http://example.com/’; fill_in Login => user@example.com; fill_in Password => password; click_link Sign in;2011 11 18
  • 16. Drivers Selenium (Selenium::Remote::Driver) Mechanize (WWW::Mechanize) HtmlUnit (WWW::HtmlUnit)2011 11 18
  • 17. Vocabulary visit, current_url, current_path, status_code, response_headers, title, source, screenshot, click_link, click_button, click_on, fill_in, choose, check, uncheck, select, unselect, attach_file, execute_script, evaluate_script, find_element, find_elements,2011 11 18
  • 18. DEMO2011 11 18
  • 19. Future • Mechanize Driver (!!!) • Scoping (within “selector” => sub { ... }) • Embedded Selenium Server (Alien::SeleniumRC) • HtmlUnit Driver2011 11 18
  • 20. Patches and Collaborators Welcome !!!2011 11 18
  • 21. Thank you2011 11 18