RSpec ставит отличное от должно равное значение - PullRequest
0 голосов
/ 11 декабря 2011

Я не могу понять, почему блок кода ниже не проходит, даже если значение put показывает значение, которое я проверяю:

  let(:new_on_each_example) { MovieList.new }
  it "can use method defined by 'let'" do
    new_on_each_example.should_not be_nil
    # the object is memoized, so
    new_on_each_example.should == new_on_each_example

    puts new_on_each_example.class
    new_on_each_example.class.should == "MovieList"
  end

Консоль показывает:

MovieList

ожидается: "MovieList" получил: MovieList (идентификатор: целое число, заголовок: строка, создан_кат: дата / время, обновленный_ат: дата / время, номер трека: целое число) (использование ==)

Puts отображает искомое значение, но тест не пройден. Почему это?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011
new_on_each_example.should be_instance_of(MovieList)

больше информации в rspec matchers doc

0 голосов
/ 11 декабря 2011

Вы переходите на RSpec "MovieList". Это строка, а не константа для вашего класса. Поэтому вы должны сделать что-то вроде:

new_on_each_example.class.should == MovieList

, но с помощью RSpec вы можете сделать что-то более элегантное:

new_on_each_example.class.should be_a(MovieList)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...