In rspec test case, there is a very useful gem called 'shoulda-matchers', which can save you a lot of writing test code.
For example:
For example:
it "save itself" do
video = Video.new(title: "Bones_test", description: 'Test informations', small_cover_url: '/img/bones_small.jpg', large_cover_url: '/img/bones_large.jpg', category_id: 1)
video.save
Video.first.title.should == "Bones_test"
Video.first.description.should == 'Test informations'
Video.first.small_cover_url.should == '/img/bones_small.jpg'
Video.first.large_cover_url.should == '/img/bones_large.jpg'
Video.first.category_id.should == 1
end
it "belongs to category" do
video = Video.create(title: "Bones_test", description: 'Test informations', small_cover_url: '/img/bones_small.jpg', large_cover_url: '/img/bones_large.jpg', category_id: 1)
category = Category.create(name: "Movie")
expect(Video.first.category).to eq(category)
end
it "is invalid without a title" do
expect(Video.new(title: nil)).to have(1).errors_on(:title)
end
it "is invalid without a description" do
expect(Video.new(description: nil)).to have(1).errors_on(:description)
end
it "is invalid if has a same title" do
Video.create(title: "Bones", description: "Great movie!")
expect(Video.create(title: "Bones", description: "Fun movie!")).to have(1).errors_on(:title)
end
can be re-writed as:
it { should belong_to(:category)}
it { should validate_presence_of(:title)}
it { should validate_presence_of(:description)}
it { should validate_uniqueness_of(:title)}
Awesome!!!
No comments:
Post a Comment