0

私は RoR に不慣れで、おそらく何かを見逃しています。何が悪いのか教えていただけますか?

単体テストの TestMethod

テスト「作成」する

prices = [12,14,16]
    prices.each {|p| 
        course = Course.new(:name => "j2ee", :price => p)
        course.save!
        puts course.persisted?
    }
#Course.where({:price => 12...17}).all.each do |c|
Course.find_by_price(12) do |c|
    puts c.price
end

終わり

テストを実行するコマンドライン出力

テストの実行:




12
..

予想通り。

しかし、db テーブルに行が含まれていないのはなぜですか?
sqlite3 test.sqlite3
sqlite> コースから count(*) を選択します。
0

これはデフです。適切なデータベース。フィクスチャデータを操作すると、正しく挿入され、次のテストランまで使用できます。どうもありがとう!乾杯ロブ

4

1 に答える 1

0

あなたの質問は、使用しているテストフレームワークを指定していませんが、一般的に言えば、テストフレームワークはそれ自体の後でクリーンアップします。これは丁寧なことです。

あなたはそれが器具で動くと言ったので、あなたは心配することは何もありません。ただし、永続性が機能していることを手動で確認する場合は、コンソールを開いてテストを入力します。

prompt$ rails c
> Course.new(:name => "j2ee", :price => 12).save!
> Course.all

コンソールはすべてのコースを印刷します。バンドラーを使用している場合(そうあるべきです)、「bundleexecrailsc」でコンソールを起動する必要がある場合があることに注意してください。

于 2012-06-02T14:02:21.567 に答える