我正在尝试使用以下规范在rspec(rails 3)之上'shoulda':
require 'spec_helper'
describe Article do
should "be true" do
assert true
end
end
并且
失败/Users/jeppe/.rvm/gems/ruby-1.8.7-p302/gems/rspec-expectations-2.0.0.beta.20/lib/rspec/expectations/handler.rb:11:in `handle_matcher': undefined method `matches?' for "be true":String (NoMethodError)
现在,当我同时进行测试时,我的测试运行得很好
require 'spec_helper'
describe Article do
it "should be true" do
assert true
end
end
和
require 'spec_helper'
describe Article do
it { should belong_to :issue }
it { should have_and_belong_to_many :pages }
it { should have_many :tasks }
end
最后一个使用了Shoulda :: ActiveRecord :: Matchers,所以据我所知,shoulda已经加载了。
有什么建议吗?
答案 0 :(得分:1)
在RSpec should
中是用于触发匹配器的RSpec方法 - 它不是Shouldas上下文块。为此,您使用RSpec拥有describe
。
should "be true" do
assert true
end
是Shoulda的Test ::基于单元的语法,它不适用于RSpec示例(我猜?)。只需使用您的第二个示例,它具有相同的效果和正确的语法。