使用“rake test”运行任何测试时都遇到了问题。
这是我得到的错误
# Running:
E
Error:
PostsControllerTest#test_the_truth:
ActiveRecord::NotNullViolation: SQLite3::ConstraintException: NOT NULL constraint failed: posts.image_file_name: INSERT INTO "posts" ("created_at", "updated_at", "id") VALUES ('2018-03-10 10:40:55.109886', '2018-03-10 10:40:55.109886', 980190962)
老实说,我不知道为什么会有插入,因为请求甚至没有到达那里。
这是我的测试,但正如我所说,没有一项测试正在进行,所以我放在那里并不重要。
require 'test_helper'
class PostsControllerTest < ActionDispatch::IntegrationTest
test "the truth" do
assert true
end
end
我的路线只是为了确保我没有遗漏任何东西。
match "/posts(/:action(/:id))", to: "posts#posts", via: [:GET,:POST]
我的迁移
class CreatePosts < ActiveRecord::Migration[5.1]
def change
create_table :posts do |t|
t.belongs_to :user
t.attachment :image #I used to have null: false here but I removed it and deleted dbs
t.text :description
t.string :title, null: false
t.timestamps
end
end
end
答案 0 :(得分:0)
查看你的posts.yml fixtures文件。根据您的迁移,帖子必须具有image_file_name列的值,如果您通过迁移修改了该模型,则该值可能不存在。