Railsは、テスト中にactiverecordオブジェクトを保存することによって作成されたデータをどこに保存しますか?
私はその質問に対する答えを知っていると思っていました: 明らかに_test データベースにあります。しかし、これは正しくないようです。
このシステムを使用して、rspec テスト中に保存された ActiveRecord データに何が起こっているかをテストしました。
$ rails -d mysql テスト
$ cd テスト
$ nano config/database.yml ...
... mysql データベースを作成する test_test、test_development、test_production
$スクリプト/rspecを生成
$ script/generate rspec_model foo
Foo の移行を編集します。
クラス CreateFoos$ rake db:migrate
spec/models/foo_spec.rb を編集:
File.expand_path(File.dirname(__FILE__) + '/../spec_helper') が必要です Foo doを説明する before(:each) する @valid_attributes = { :バー => 12345 } 終わり 「有効な属性を指定して新しいインスタンスを作成する必要があります」 foo = Foo.new(@valid_attributes) foo.save 「眠っている...」を置く スリープ(20) 終わり 終わり$レーキスペック
"sleeping..." が表示されたら、mysql セッションが test_test データベースに接続されている別の開いているターミナルに切り替えて、次の操作を行います。
mysql> foos から * を選択します。 空集合 (0.00 秒)
テストの実行中に、mysql セッションで test_test データベースにレコードが表示されないのはなぜですか?