There's an echo in my head

日々のメモ。

rspec

Rails 5.x に更新する際に rails_kwargs_testing gem を使ったら便利だった

Rails 4.x で動いている社内ツールを Rails 5.x に更新する作業を最近やっていて、コントローラ・リクエスト周りのテストの書き換えに rails_kwargs_testing gem が便利だったのでメモ。 ざっくり書くと、これを使うと Rails 5.x 用のテストコードに寄せた状…

RSpecのbeforeブロックで現在テスト中のexampleのソースを取得する

describe "foo" do before do puts example.description end it "bar" do # some test end end specのファイルパスと行番号が表示される。 example at .spec/foo_spec.rb:5 Getting the full RSpec test name from within a before(:each) blockを見ると、Ex…

コマンドラインツールの~/.hogercのテストはrubygemsが参考になる

rails-erdに~/.erdconfigという設定ファイルを作ろうとしたときにrubygemsのGem::ConfigFileの実装とテストが参考になった。 lib/gem/config_file.rb test/rubygems/test_config.rb 特に参考になったのはテスト用の設定ファイルの準備。 テストしたいときに…

TCPServerを相手にスレッドを使ったテスト

ok_gntpdというTCPServerをつかったサーバを相手にしたテストを書いた時のメモ。 テストしたい内容としては サーバを立ちあげて、 特定の文字列を送信したときに 特定の文字列を受信する ということ。規模的に結合テストというほどのものではないけど、サー…

ランダムに落ちるspecの修正で便利だったRSpecの2つの設定

最近開発していて便利だったのでメモっておく。 一つはorder。spec_helperが生成された直後は"random"に設定されていて、このときspecの実行順序が毎回ランダムに変わる。 ランダムに実行することで実行順序に依存して落ちるspecを見つけることができる(そ…

rspecの初期化手順

とりあえずspecを回したいよね、というとき。 $ vim Gemfile $ bundle install $ rbenv rehash $ rspec --init $ vim spec/spec_helper $ vim Rakefile Gemfile gem "rspec" spec/spec_helper 冒頭に以下を追記して、$LOAD_PATHの追加(この場合はlib/)と適…

RSpecにdescribeやcontextで使えるメソッドを実装する

describeやcontext間で共通する処理をメソッドにするとスッキリするんだけど、それをspecファイルをまたいで共有したいときに。 module RSpec module Core module MyHelper # 適当に名付ける module ExampleGroupMethods def my_let(*args) p args let(*args…

このブログに出てくるコードスニペッツは、引用あるいは断りがない限りMITライセンスです。