我试图写一些测试。第一个非常简单,并测试资源在没有标题的情况下不会保存。运行rake test test/models/item_test.rb
会出现此错误:
Run options: --seed 8410
# Running:
E
Finished in 0.027193s, 36.7740 runs/s, 0.0000 assertions/s.
1) Error:
ItemTest#test_should_not_save_item_without_title:
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: relation "admin_users" does not exist
LINE 1: DELETE FROM "admin_users"
^
: DELETE FROM "admin_users"
1 runs, 0 assertions, 0 failures, 1 errors, 0 skips
我的测试代码是:
require 'test_helper'
class ItemTest < ActiveSupport::TestCase
test "should not save item without title" do
item = Item.new
assert_not item.save
end
end
为什么admin_users
会陷入其中?在测试任何资源时会发生这种情况。
答案 0 :(得分:1)
Rails生成器必须在test/fixtures
目录中创建一个文件,该文件与数据库中的任何实际表都不对应,或者在删除模型时可能忘记删除一个文件:)无论如何,要解决问题请务必删除test/fixtures/admin_users.yml
。这可能还需要删除其他自动生成的灯具。