【发布时间】:2011-06-19 13:19:46
【问题描述】:
所以我们有针对 User 模型的默认脚手架测试,具体来说:
test "should create user" do
assert_difference('User.count') do
post :create, :user => @user.attributes
end
assert_redirected_to user_path(assigns(:user))
end
我们有一个用户装置:
one:
email: test2@test.com
name: Joe Smith
问题是测试失败:
1) 错误: test_should_create_user(UsersControllerTest): ActiveRecord::RecordNotUnique: Mysql::Error: 重复条目 键 2 的“test2@test.com”:插入 INTO
users
似乎正在发生的事情是 rails 加载了固定装置,然后尝试使用相同的“一个”数据再次创建用户,并且唯一性约束失败。这一切都说得通。问题是,如果您需要从测试中创建的用户对象的夹具文件中提取数据,如果相同的夹具用于预填充数据库,我们如何测试这一点?
【问题讨论】:
-
Rails 4 和 mysql 中仍然存在问题。您找到解决方案了吗?
标签: ruby-on-rails unit-testing fixtures