【发布时间】:2014-08-07 09:29:47
【问题描述】:
我正在测试一种方法,要求完全匹配,但测试没有通过?知道我做错了什么吗?
谢谢!!
我的方法:
def self.search_by_number(number)
return [] if number.blank?
where("title LIKE ?", "%#{number}%")
end
我的规格:
it 'returns an array of one video for an exact match' do
t1 = Video.create(title: 2345)
t2 = Video.create(title: 2323)
expect(Video.search_by_number(2345)).to eq([t1])
end
我在这里真的找不到问题,这是我得到的日志错误
1) Video search_by_number returns an array of one video for an exact match
Failure/Error: expect(Video.search_by_number(2345)).to eq([t1])
expected: [#<Video id: 3, title: 2345, description: nil, thumb_url: nil, large_url: nil, start_point: nil, start_time: nil, end_point: nil, end_time: nil, created_at: "2014-08-07 09:15:13", updated_at: "2014-08-07 09:15:13">]
got: #<ActiveRecord::Relation [#<Video id: 1, title: 2345, description: nil, thumb_url: nil, large_url: nil, start_point: nil, start_time: nil, end_point: nil, end_time: nil, created_at: "2014-08-07 09:09:55", updated_at: "2014-08-07 09:09:55">, #<Video id: 3, title: 2345, description: nil, thumb_url: nil, large_url: nil, start_point: nil, start_time: nil, end_point: nil, end_time: nil, created_at: "2014-08-07 09:15:13", updated_at: "2014-08-07 09:15:13">]>
【问题讨论】:
-
一个是
Video对象,另一个是ActiveRecordRelation这就是它失败的原因。 -
@japed 你好!我该怎么做才能改变这个输出?
-
如果您使用的是 rails 4,请在搜索末尾附加
.to_a。expect(Video.search_by_number(2345).to_a).to eq([t1]) -
@jvnill 你好!这是 Rails 4 的新事物吗,因为我以前做过这个? :)
-
@jvnill 也不起作用
标签: ruby-on-rails rspec