RSpec book help; why won't this stub method work?

Subscription model--------------------------------------------

class Subscription < ActiveRecord::Base

has_one :user

def can_send_message?

if user.sent_messages.count < limit

true

else

false

end

end

end

Subscription model spec--------------------------------------------

require ‘spec_helper’

describe Subscription do

describe “#can_send_message?” do

before(:each) do

@subscription = Subscription.new(:limit => 10)

@zach = User.create! :subscription => @subscription

end

context “when a user has not reached the subscription limit for the month” do

it “returns true” do

@zach.sent_messages.stub(:count).and_return(9) # this isn’t working

@subscription.can_send_message?.should == true

end

end

context “when a user has reached the subscription limit for the month” do

it “returns false” do

@zach.sent_messages.stub(:count).and_return(10) # this isn’t working

@subscription.can_send_message?.should == false

end

end

end

end

count is a class method, so maybe you should try stubbing it on the Message class

That did it! Thanks - I didn’t know class methods required that.

Message.stub(:count).and_return(9)