Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Integration Testing Engines

Integration Testing Engines

This was a talk that covers the ways that you can integration test engines.

Ryan Bigg

April 26, 2012
Tweet

More Decks by Ryan Bigg

Other Decks in Programming

Transcript

  1. Integration
    testing
    engines
    Thursday, 26 April 12

    View Slide

  2. Disagree.
    Thursday, 26 April 12

    View Slide

  3. Rails.application.routes.draw
    Thursday, 26 April 12

    View Slide

  4. Rails.application.routes.draw
    bullshit.
    Thursday, 26 April 12

    View Slide

  5. Nooooooo do not draw
    routes on the application!!!
    Fuck.
    I want to jump on stage.
    #railsconf
    https://twitter.com/ryanbigg/status/194501115524554754
    Thursday, 26 April 12

    View Slide

  6. Your::Engine.routes.draw
    Thursday, 26 April 12

    View Slide

  7. Your::Engine.routes.draw
    real talk.
    Thursday, 26 April 12

    View Slide

  8. Strongly
    Disagree.
    Thursday, 26 April 12

    View Slide

  9. mount Your::Engine, :at => “path”
    Thursday, 26 April 12

    View Slide

  10. mount Your::Engine, :at => “/”
    Thursday, 26 April 12

    View Slide

  11. OMG!!! MY ROUTES ARE
    BROKEN!!!
    Thursday, 26 April 12

    View Slide

  12. No.
    They’re not “broken”
    Thursday, 26 April 12

    View Slide

  13. They are elsewhere.
    Thursday, 26 April 12

    View Slide

  14. module Your
    class Engine < Rails::Engine
    isolate_namespace
    end
    end
    Thursday, 26 April 12

    View Slide

  15. Your::Engine.routes.draw do
    resources :people
    end
    Thursday, 26 April 12

    View Slide

  16. Rails.application.routes.draw do
    resources :people
    end
    Thursday, 26 April 12

    View Slide

  17. your_engine.people_path
    main_app.people_path
    Thursday, 26 April 12

    View Slide

  18. describe Spree::ProductsController
    it “should get all products” do
    get :index
    end
    end
    Thursday, 26 April 12

    View Slide

  19. Thursday, 26 April 12

    View Slide

  20. No route matches { :controller =>
    “Spree::ProductsController”, :action
    => “index” }
    Thursday, 26 April 12

    View Slide

  21. Lies, damned lies.
    Thursday, 26 April 12

    View Slide

  22. describe Spree::ProductsController
    it “should get all products” do
    get :index, :use_route => :spree
    end
    end
    Thursday, 26 April 12

    View Slide

  23. describe “products” do
    it “sees products” do
    visit products_path
    end
    end
    Thursday, 26 April 12

    View Slide

  24. Thursday, 26 April 12

    View Slide

  25. undefined method `products_path’
    Thursday, 26 April 12

    View Slide

  26. Lies, damned lies.
    (again)
    Thursday, 26 April 12

    View Slide

  27. module Spree::Core::UrlHelpers
    def spree
    Spree::Core::Engine.routes.url_helpers
    end
    end
    Thursday, 26 April 12

    View Slide

  28. describe “products” do
    it “sees products” do
    visit spree.products_path
    end
    end
    Thursday, 26 April 12

    View Slide

  29. Thursday, 26 April 12

    View Slide

  30. Rails 3 in Action
    manning.com/katz
    Chapter
    Thursday, 26 April 12

    View Slide