должен ли "быть действительным" делать не удается с "handle_matcher": неопределенный метод "соответствует?" " - PullRequest
2 голосов
/ 09 сентября 2010

Я пробую 'musta' поверх rspec (rails 3) со следующей спецификацией:

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, так что, насколько мне известно, musta загружается нормально.

Есть предложения?

1 Ответ

1 голос
/ 10 сентября 2010

В RSpec should - это метод RSpec, используемый для запуска сопоставления - это не контекстный блок Следует.Для этого вы используете собственный RSpec * describe.

should "be true" do
  assert true
end

- это синтаксис на основе Testa :: Unita, который не должен работать в примерах RSpec (наверное?).Просто используйте ваш второй пример, который имеет тот же эффект и правильный синтаксис.

...