タグ

2023年7月18日のブックマーク (4件)

  • rspec-mocksを使ってテストで上手に手を抜こう

    対象 RSpec での簡単なテストの書き方は基的に知っている rspec-mocks を使ったテストを知らない|知ってるけど雰囲気で使っている 上記に当てはまる私自身が、テストをより効率的に書くために、広く浅くざっくり調べた内容のため、より詳しく知りたい人は公式ドキュメントなどを漁ってください。 ※記事中に出てくるコードの多くは、RSpec によるテストコード内で実行されるコードです。周辺のコードは省略するので、適当に文脈から読み取ってください。 前提 rspec-core (3.7.1) rspec-mocks (3.7.0) rspec-rails (3.7.2) rspec-support (3.7.1) rspec-mocksとは rspec-mocksは、RSpec用のテストダブルフレームワークで、モックとかスタブとかスパイとかサポートしてくれます。 テストダブルとは、テスト対

    rspec-mocksを使ってテストで上手に手を抜こう
  • RspecでMockを使う - Qiita

    記述例は、全てitの中で書かれているものとして読んでください。 letやsubjectに分離して記述する場合は、適宜読み替えてください。 いいね、つけていただいたんで情報足します。 20170119 mockを使ったrspecテストのコツ はまって試行錯誤した結果のまとめ。 publicメソッドのテストに注力する privateメソッドはテストしない方向で 他のメソッドが呼ばれる箇所はそのメソッドを偽装し、他のメソッドをテストするようなことにならないようにする 他のクラスのインスタンス生成箇所は、元のコードの方をプライベートメソッド化し、偽装 他のクラスのインスタンス生成箇所はインスタンス変数に入れて後で使うことが多いので上記のメソッド偽装して、インスタンス生成部分をスキップ。インスタンス変数をinstance_variable_setで直接spec上で突っ込む メソッド内でインスタンス変

    RspecでMockを使う - Qiita
  • RubyでTempfileを使う際の注意 - Qiita

    tempfile = Tempfile.open(...) do |f| ... ... f.write end (...tempfileを使った処理...) といったコードがありました。 このコード、だいたいの場合問題なく動くのですが、たまに作成したはずの一時ファイルがないと怒られることがありました。 実は Tempfile オブジェクトは自身への参照がなくなり、ガベージコレクションされた際に一時ファイルを削除する仕組みがあります。実はさきほどのコードでは Tempfile のオブジェクトへの参照が Tempfile#open のブロックを抜けるタイミングでなくなってしまっていたのです。 変数 tempfile があるじゃないか、と思うかもしれませんが実はこれ Tempfile のオブジェクトではないのです。 ドキュメントを見ると、 Tempfile オブジェクトはFileクラスへのDe

    RubyでTempfileを使う際の注意 - Qiita
  • rubyで配列をCSVに書き込み,読み込み - Qiita

    CSV.open('hoge.csv','w') do |csv| # output to csv file array.each do |bo| csv << bo end end

    rubyで配列をCSVに書き込み,読み込み - Qiita