Your SlideShare is downloading. ×
0
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Brownie
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Brownie

1,529

Published on

Yokohama.pm #8

Yokohama.pm #8

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,529
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
3
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

×