That's because assigns only works in a Rails functional test.
If you're the author of the module, you could add a self.included block
that then sets up an attr_reader :link, like so:
def self.included(base)
base.class_eval do
attr_reader :link
end
end
Then, all you have to say is @link.link.should == Link.new.
Otherwise, you can access the instance variable within @link using
instance_variable_get. So @link.instance_variable_get("@link").should ==
Link.new.
-- Elliot
On 11/16/09 1:32 PM, Andy Koch wrote:
I've seen several posts related, but not touching on what I'm
wondering...
I have a lib module that I'd like to do 'white-box' testing - similar
to a Rails mvc. But I can't see how to get a handle on the internal
instance vars in the method.
here are some code snippets that probably best explain my situation...
#########################################################
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
describe AasmCrawler do
context "create_message method" do
it "should create a new Link message" do
@link.should == Link.new
end
end
end
#########################################################
module AasmCrawler
def create_message
@link = Link.new
end
end
#########################################################
I've tried "assigns[:link]" but "assigns" is not known.
I've also seen comments to test this via a model where it is included
- but that seems like WET testing, if this is used repeatedly why not
test it once at the source?
thanks for any help
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users