1

では、A1 と A2 という 2 つのモデルがあり、A1 には多数の A2 があり、A2 は A1 に属しています。ActiveRecord の仕様によると、A1 からインスタンス化して a2 コレクションにリソースを作成しようとすると、保存するには親を保存する必要があるという例外がトリガーされます。

a1 = A1.new
a1.a2s.create #=> BOOM! Exception

ここまで、すべてクリア。しかし、今では、保存されていない A1 インスタンスがある場合の Rspec テストがあり、次のようにします。

a1.a2s.should_receive(:create)
a1.a2s.create

そして、これが牛乳が酸っぱくなるところです。これらの AR モデルを Sinatra アプリと Rails アプリで複製しました。Railsで実行すると、例外が発生したにもかかわらず、期待が一致したため、仕様が実行されます。ただし、Sinatra では、例外が発生するだけで、テストは受け入れられません。

誰かが理由を教えてもらえますか? 私はそれが Rspec の問題だと思っていましたが、彼らはそれを認めていません。

4

1 に答える 1