32

我可以检查是否在用户类中调用了 FeedItem::populate_from_friend_to_user?

    it "should auto populate feed after user.add_friend" do
      @user.add_friend(@friend1)
      @user.should_receive('FeedItem::populate_from_friend_to_user').with(@friend1, @user)
    end

使用上面的代码,我得到:

undefined method `populate_from_friend_to_user' for :FeedItem:Symbol
4

2 回答 2

50

你不应该知道方法在哪里被调用,只是方法被调用了。你只知道方法是否被调用:

在 RSpec 3 之前

 it "should auto populate feed after user.add_friend" do
    FeedItem.should_receive(:populate_from_friend_to_user).with(@friend1, @user)
    @user.add_friend(@friend1)
 end

在 RSpec 3中,语法是

expect(Object).to receive(:method).with(params)
于 2010-11-05T13:16:43.763 回答
10

请记住,这仅适用于 rspec2 。对于 rspec3 你打电话

expect(@user).to receive(:your_method)

https://www.relishapp.com/rspec/rspec-mocks/v/3-0/docs/message-expectations

于 2014-03-27T11:33:45.050 回答