Квадратные скобки для параметров Assert в Rails - PullRequest
0 голосов
/ 26 марта 2011

У меня есть этот тест:

def test_should_only_list_promoted_on_index
    get :index
    assert_equal stories(:promoted), assigns(:stories)
  end

, который завершается ошибкой с сообщением:

<#<Story id: 3, name: "What is a Debugger?", link: "http://en.wikipedia.org/wiki/Debugger", created_at: "2011-03-25 20:57:04", updated_at: "2011-03-25 20:57:04", user_id: 2, votes_count: 5, description: nil>> expected but was
<[#<Story id: 3, name: "What is a Debugger?", link: "http://en.wikipedia.org/wiki/Debugger", created_at: "2011-03-25 20:57:04", updated_at: "2011-03-25 20:57:04", user_id: 2, votes_count: 5, description: nil>]>.

однако, если я поставлю квадратные скобки вокруг параметра "Stories (: повышен))"

def test_should_only_list_promoted_on_index
    get :index
    assert_equal [stories(:promoted)], assigns(:stories)
  end

тест пройден успешно.Почему это так?

Я использую Rails 2.3.9 и Ruby 1.9.2

1 Ответ

2 голосов
/ 26 марта 2011

Квадратные скобки обозначают массив.Похоже, stories(:promoted) возвращает только одну историю, тогда как assigns(:stories) возвращает массив длины 1, содержащий эту историю.

...