rspec createとbuildの違い(使い分け)

rspecにはinstanceを作るメソッドで buildcreateが用意されている。

以前の職場で自動テストが重すぎて開発に支障が出ていた。
その時に話題に上がったのがテスト中にDBアクセスが多すぎることだった。
その時 createする必要がないものは buildにしましょうという事になったが、どういうことか全く理解してなかった。

なので、今回は buildcreateの違いを理解してみる。

build

メモリ上にインスタンスを確保する。
DB上にはデータがないので、DBにアクセスする必要があるテストのときは使えない。
DBにアクセスする必要がないテストの時には、インスタンスを確保する時にDBにアクセスする必要がないので処理が比較的軽くなる。

create

DB上にインスタンスを永続化する。
DB上にデータを作成する。
DBにアクセスする処理のときは必須。(何かの処理の後、DBの値が変更されたのを確認する際は必要)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です