隣の席に座っている会長に教えてもらった。
it "2回目のtransactionではMashal.loadが1回だけ呼ばれる" do Marshal.should_receive(:load).exactly(4).and_return({}) PStore.new(@dbfile).transaction {} PStore.new(@dbfile).transaction {} end
上記の例では PStore.transaction を2回呼ぶと Mashal.load が4回呼ばれることを検証している。
この辺や mock ライブラリとかの使い方について、まだまだ勉強していかないといかんなあ。
おもむろに script/dbconsole mongo shell を叩いてこんな感じ
> show dbs admin carrierwave_test local > use carrierwave_test switched to db carrierwave_test > db.dropDatabase() { "dropped" : "carrierwave_test.$cmd", "ok" : 1 }
use してデータベースを選択してから drop というのが最初は慣れなかった。
残念ながら script/dbconsole で mongo shell が起動するのはうちのプロジェクトだけだと思います…。
な、なんだってー!
The RSpec Book!
ぐぬぬ、そんな本があったのか。