Hi, I''m new on tests but trying to test the following method, but it
gives me an error message about "nil is not a symbol".
# job.rb
= def publish(url)
update_attributes(:available => true, :locked => false)
tweet(url)
end
# job_spec.rb
== it "should publish a job" do
@job = Factory(:job, :available => false)
lambda { @job.publish }.should
change(@job.available).from(false).to(true)
end
# error
= 1) Job Job publish should publish a job
Failure/Error: lambda { @job.publish }.should
change(@job.available).from(false).to(true)
nil is not a symbol
# ./spec/models/job_spec.rb:128:in `block (3 levels) in <top
(required)>''
Finished in 1.12 seconds
47 examples, 1 failure, 4 pending
any idea?
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
How does your factory declaration look like? On Feb 2, 3:55 am, Kleber Shimabuku <klebershimab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi, I''m new on tests but trying to test the following method, but it > gives me an error message about "nil is not a symbol". > > # job.rb > => def publish(url) > update_attributes(:available => true, :locked => false) > tweet(url) > end > > # job_spec.rb > ==> it "should publish a job" do > @job = Factory(:job, :available => false) > lambda { @job.publish }.should > change(@job.available).from(false).to(true) > end > > # error > => 1) Job Job publish should publish a job > Failure/Error: lambda { @job.publish }.should > change(@job.available).from(false).to(true) > nil is not a symbol > # ./spec/models/job_spec.rb:128:in `block (3 levels) in <top > (required)>'' > > Finished in 1.12 seconds > 47 examples, 1 failure, 4 pending > > any idea?-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
In this block:
lambda { @job.publish }.should
change(@job.available).from(false).to(true)
end
try putting the arguments to the change method in curly braces:
lambda { @job.publish }.should
change{@job.available}.from(false).to(true)
end
If you pass the method parameters, which is what it expects with
parantheses, it expects two arguments, the second of which would be
the method name in the form of a symbol, which I think explains the
''nil is not a symbol'' error you''re getting.
By the way, if you''re upgrading RSpec1 to RSpec2, there''s a
cheat
sheet of changes here:
http://snyderscribbles.blogspot.com/2011/01/rspec-2-changes-from-rspec-1.html
On Feb 1, 5:55 pm, Kleber Shimabuku
<klebershimab...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
wrote:> Hi, I''m new on tests but trying to test the following method, but
it
> gives me an error message about "nil is not a symbol".
>
> # job.rb
> => def publish(url)
> update_attributes(:available => true, :locked => false)
> tweet(url)
> end
>
> # job_spec.rb
> ==> it "should publish a job" do
> @job = Factory(:job, :available => false)
> lambda { @job.publish }.should
> change(@job.available).from(false).to(true)
> end
>
> # error
> => 1) Job Job publish should publish a job
> Failure/Error: lambda { @job.publish }.should
> change(@job.available).from(false).to(true)
> nil is not a symbol
> # ./spec/models/job_spec.rb:128:in `block (3 levels) in <top
> (required)>''
>
> Finished in 1.12 seconds
> 47 examples, 1 failure, 4 pending
>
> any idea?
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.