Kristian Mandrup
2010-Aug-21 13:28 UTC
[rspec-users] Rails 3 plugin development - recommended RSpec practices?
I have been thinking that there must be some better ways of doing Rails plugin development than my current approach. Currently I tend to have my plugin in one location as a gem and then link to it from some fresh Rails 3 app, from the vendor/plugins folder, with a symlink. Then I have to carry around the whole Rails 3 app as baggage for development. What are some better options? There must be some libraries, tools out there specifically to meet this need? Seems like various plugin developers each have their own setup for doing this!? I tend to use RSpec 2 for all my testing needs. How does rspec-rails fit into this? Would it be better to use Steak or Cucumber for this? Thanks.
Kristian Mandrup
2010-Aug-21 13:59 UTC
[rspec-users] Rails 3 plugin development - recommended RSpec practices?
Looking at Ryan B''s CanCan for inspiration require ''rspec'' require ''rspec/autorun'' require ''active_support'' require ''active_record'' require ''action_controller'' require ''action_view'' require ''rails3_plugin_toolbox'' RSpec.configure do |config| config.mock_with :rr end --- require "spec_helper" describe CanCan::ControllerAdditions do before(:each) do @controller_class = Class.new @controller = @controller_class.new stub(@controller).params { {} } stub(@controller).current_user { :current_user } mock(@controller_class).helper_method(:can?, :cannot?) @controller_class.send(:include, CanCan::ControllerAdditions) end So here he uses a stub and mock approach... I would like to use the approach described on Rails Dispatch: http://www.railsdispatch.com/ module MyAddition def hello puts "Hello from MyAddition" end end ActiveSupport.on_load(:action_view) do include MyAddition end ActiveSupport.on_load(:action_controller) do include MyAddition end Could I then spec sth. like this? ActionController.methods.grep(/hello/).should_not be_empty ActionView.methods.grep(/hello/).should_not be_empty or how would I go about it?