【发布时间】:2013-12-15 01:22:10
【问题描述】:
我正在学习 rspec 和数据库,并且有一个具有以下架构的电影数据库。我想知道如何让这个测试通过,因为我的努力似乎是徒劳的。如果您需要任何其他信息,请告诉我,以防我遗漏了一些对您有帮助的重要信息:
架构
create_table "movies", force: true do |t|
t.string "title", null: false
t.integer "year", null: false
t.text "synopsis"
t.integer "rating"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "genre_id", null: false
t.in
end
create_table "genres", force: true do |t|
t.string "name", null: false
t.datetime "created_at"
t.datetime "updated_at"
end
模型设置:
class Movie < ActiveRecord::Base
validates_presence_of :title
validates_presence_of :year
validates_presence_of :genre
has_many :cast_members
has_many :actors, through: :cast_members
belongs_to :genre
belongs_to :studio
Rspec 测试:
it "partially matches movie titles" do
results = Movie.search('Manhat')
expect(results.count).to eq(2)
expect(results.include?(manhattan)).to be_true
expect(results.include?(mystery)).to be_true
end
Rspec 测试参数输入:
.create(:movie, title: "Manhattan Murder Mystery"
到目前为止,我已经尝试了几种变体的代码:
class Movie < ActiveRecord::Base
等等,上面……
def self.search(query)
select('title').where('title ilike ? OR synopsis ilike ?','%query%', '%query%')
end
【问题讨论】:
标签: ruby-on-rails ruby database rspec class-method