3

少し混乱してテストの実装を延期しています。User.createを使用すると、複数のテストを作成して保存できます。

should "test something" do
  u1 = User.create(:first_name => "Fred", :last_name => "Flintstone")
  assert true
end

should "test something else" do
  u1 = User.create(:first_name => "Fred", :last_name => "Flintstone")
  assert true
end

ただし、Factory.createを使用すると、ActiveRecordの重複エントリエラーがスローされます。

should "test something" do
  Factory.create(:amanda_levy)
  assert true
end

should "test something else" do
  Factory.create(:amanda_levy)
  assert true
end

エラー:「ActiveRecord :: StatementInvalid:Mysql :: Error:Duplicateentry」

何が得られますか?

4

1 に答える 1

1

spec_helper に次の行がありますか。

config.use_transactional_fixtures = true

これは rspec/ test::unit に、すべてのテスト ケースの開始時にトランザクションを開始し、終了時にロールバックを発行するように指示します。

于 2010-08-13T06:23:05.673 に答える