1

我正在尝试在 RSpec 中使用 shoulda 宏并且遇到了一些问题。

我做了以下事情:

spec_helper.rb:

require 'shoulda/active_record/macros'

Spec::Runner.configure do |config|
    ...
    config.include(Shoulda::ActiveRecord::Macros, :type => :model)

规格/模型/foo_spec.rb:

describe Foo do
    it { should_have_instance_methods( :save ) } # just for example
end

这让我失败了:

undefined method 'get_options!' for #<Spec::Rails::Example::ModelExampleGroup::Subclass_1:0xb714046c>

4

2 回答 2

3

只是语法:

不是:

it { should_have_instance_methods( :save ) }

it { should have_instance_methods( :save ) } 

(注意下划线)

于 2009-12-17T21:58:04.003 回答
0

我不是 100% 确定与 RSpec 的集成,但是您是否在上下文中包装了您调用 should_have_instance_methods 的块?IIRC all should 来自 shoulda 的声明需要一个围绕它们的上下文。

于 2009-09-20T23:07:11.473 回答