在 table 的 model 中有如下的 validates,要求在创建 table 的时候 name 不能重复,
validates :name, presence: true, uniqueness: true
这个帮助方法会在保存对象之前验证属性值是否是唯一的。该方法不会在数据库中创建唯一性约束,所以有可能两个数据库连接创建的记录字段的值是相同的。为了避免出现这种问题,要在数据库的字段上建立唯一性索引——Rails Guides(uniqueness)
由于上述原因,在数据库的相应字段上建立了唯一性索引后其 schema 中出现如下的一行:
add_index "tables", ["name"], name: "index_tables_on_name", unique: true, using: :btree
那么问题来了,如何对这个验证操作编写测试用例(rspec)?前辈们有什么可行的方案吗?