Ruby on rails 如何用RSpec和摩卡来模仿Actsastaggaleon?

Ruby on rails 如何用RSpec和摩卡来模仿Actsastaggaleon?,ruby-on-rails,rspec,acts-as-taggable-on,ruby-mocha,Ruby On Rails,Rspec,Acts As Taggable On,Ruby Mocha,如何使用RSpec和Mocha模拟actsastaggaleon::tag?我是rails测试新手,所以我可能遗漏了一些明显的东西 我试过: /规格/控制器/书籍\u控制器.rb it "should return 2 categories whith books" do tag_ruby = mock_model(ActsAsTaggableOn::Tag, :name => 'ruby', :context => 'category')

如何使用RSpec和Mocha模拟actsastaggaleon::tag?我是rails测试新手,所以我可能遗漏了一些明显的东西

我试过:

/规格/控制器/书籍\u控制器.rb

it "should return 2 categories whith books" do

      tag_ruby = mock_model(ActsAsTaggableOn::Tag, :name => 'ruby', :context => 'category')
      tag_java = mock_model(ActsAsTaggableOn::Tag, :name => 'java', :context => 'category')

      ActsAsTaggableOn::Tag.stubs(:with_context).returns([tag_ruby, tag_java])

      get 'books_by_categories'
      assigns(:books_by_categories).should be_empty
end
/应用程序/控制器/书籍/控制器

  def books_by_categories
    @books_by_categories = ActsAsTaggableOn::Tag.with_context('category').all.map { |category|
      {:name => category.name, :books => category.books.visibles.limit(10)}
    }
  end
我得到:

Failure/Error: tag_ruby = mock_model(ActsAsTaggableOn::Tag, :name => 'ruby', :context => 'category')
     Mocha::ExpectationError:
       unexpected invocation: #<Mock:ActsAsTaggableOn::Tag_1001>.__mock_proxy()
       unsatisfied expectations:
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.id(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.name(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.marked_for_destruction?(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.valid?(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.persisted?(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.context(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.destroyed?(any_parameters)
       - expected exactly once, not yet invoked: #<Mock:ActsAsTaggableOn::Tag_1001>.blank?(any_parameters)
Failure/Error:tag\u ruby=mock\u model(ActsAsTaggableOn::tag,:name=>'ruby',:context=>'category')
Mocha::ExpectationError:
意外调用:#.uu mock_proxy()
未满足的期望:
-只需一次,尚未调用:#.id(任何_参数)
-只需一次,尚未调用:#.name(任何_参数)
-只需一次,尚未调用:#。标记为_进行_销毁?(任何_参数)
-预期仅出现一次,尚未调用:#。有效?(任何_参数)
-预期仅出现一次,尚未调用:#.持久化?(任何_参数)
-只需一次,尚未调用:#.context(任何_参数)
-预期只有一次,尚未调用:#.已销毁?(任何_参数)
-预期仅出现一次,尚未调用:#.blank?(任何_参数)