RSpec - общее сообщение об ошибке вместо полезного вывода - PullRequest
2 голосов
/ 29 октября 2010

Это использует RSpec2 - независимо от того, что происходит, я получаю следующую ошибку, когда ожидание не совпадает.Я уверен (хотя я не могу попробовать какое-то время) в версии 1 следующий код будет утверждать, что метод 'method' не был вызван.

Фрагмент кода ниже демонстрационной версии - это проблема - при отмене комментариевМетод в инициализации, тест пройдет.Удалите комментарий, и возвращается общее сообщение об ошибке.

describe "Test" do
  it "should do" do
    my_mock = mock("my mock")
    my_mock.should_receive(:methods)
    obj = Shaun.new(my_mock)
  end
end

class Shaun
  def initialize(mock)
    #mock.methods
  end
end

Ошибка

Failures:
  1) Test should do
C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:138:in `block in find_failed_line':
 undefined method `downcase' for nil:NilClass (NoMethodError)
        from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:136:in `each'
        from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:136:in `detect'
        from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:136:in `find_failed_li
ne'
        from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_formatter.rb:122:in `read_failed_li
ne'
        from C:/Program Files/Ruby/Ruby192/lib/ruby/gems/1.9.1/gems/rspec-core-2.0.0/lib/rspec/core/formatters/base_text_formatter.rb:27:in `block in d
ump_failures'

1 Ответ

1 голос
/ 29 октября 2010

Хорошо работает здесь, с rspec 2.0.1 и REE 1.8.7. Нужно будет проверить еще раз с 1.9.2, поскольку у меня его нет в этой системе.

при комментировании:

Failures:
1) Test should do
   Failure/Error: my_mock.should_receive(:methods)
   (Mock "my mock").methods(any args)
       expected: 1 time
       received: 0 times
   # ./test_rspec.rb:4
...