0
私はいくつかのテストを書こうとしています。最初のものは非常に単純で、リソースがタイトルなしで保存されないことをテストします。 rake test test/models/item_test.rb
を実行すると、このエラーを与える:`rake test`コマンドが間違ったモデルをテストします
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
は、その中に引き込まなっていますか?これは、のリソースをすべてのリソースにテストするときに発生します。
'spec_helper.rb'ファイルに、次の行がありますか?' ActiveRecord :: Migration.maintain_test_schema! '?私は、テストデータベースのスキーマが最新ではないと推測しています。 – james00794
@ james00794これは、rspecや 'spec_helper.rb'については何も言わず、次の通りです:http://guides.rubyonrails.org/testing.html。 rspecはちょうど言及されていない仮定ですか? – sabaeus
あなたは正しいですが、そのガイドはRailsに付属の組み込みテストフレームワークのためのものです。そのガイドが説明するようにテストデータベースを準備しましたか( 'rake db:test:prepare')? – james00794