假设我们有一个model类Project,它的字段name是必须是唯一。它的单元测试可以如下:
[code]
def test_project_name_should_be_uniqure
project = Project.create!(:name => 'my project')
assert_raises(ActiveRecord::RecordInvalid){
Project.create!(:name => 'my project')
}
end
[/code]
当然,更好的写法是这样:
[code]
def test_project_name_should_be_uniqure
project = Project.create!(:name => 'my project')
another_project = Project.new(:name => 'my project')
assert !another_project.valid?
assert_equal ['Name has already been taken'],another_project.errors.full_messages
end
[/code]
[code]
def test_project_name_should_be_uniqure
project = Project.create!(:name => 'my project')
assert_raises(ActiveRecord::RecordInvalid){
Project.create!(:name => 'my project')
}
end
[/code]
当然,更好的写法是这样:
[code]
def test_project_name_should_be_uniqure
project = Project.create!(:name => 'my project')
another_project = Project.new(:name => 'my project')
assert !another_project.valid?
assert_equal ['Name has already been taken'],another_project.errors.full_messages
end
[/code]