Rails Developers Meetup 2018 Day3 Extremeで登壇しました
Rails Developers Meetup 2018 Day3 Extremeで登壇しました。 speakerdeck.com 正直、クオリティに納得いってないんですが公開。 どうしても付録Cと被ってしまう内容だったのと、TDDから初めてRSpecまでやろうと思ったら20分では無理でした。
とはいえ、Rails歴5年以上の人が6割超えのRailsdmなのに刺さった人が結構いて、定期的な啓蒙活動に意味がある分野なのではと思った。
RailsでCustom FormBuilderのテストってみんなどう書いているんだろう
RailsでFormBuilderを独自拡張した場合のSpecってあまり言及されていないよなと思う。
例えば、こんな感じで独自FormBuilderを書いたとする。
app/forms/application_form_builder.rb
するとSpecはこんな感じかなあと思っているのだけど・・・。
spec/forms/application_form_builder_spec.rb
なんかしっくりこない。 ActionView::Helpers::FormBuilderのコミットログを見ると、initializeメソッドの引数が変更になることもあるので、form_forを呼んでから書くというのがいいかなとか考えてる。 コードとしてはこんな感じ。 form_forから書いた方がClassを直で呼ぶより保守性が高いかな?
参考URL
RSpecでshouldからexpectへ移行する時に困ったこと
RSpecのExpectationsでshouldが非推奨となり、expectが推奨になったわけですが、expectで書くかと思った時に困ることがあった。例えば、
subject { User.new } its(:login_id) { should be_nil }
のようなコードを書きたくてもshouldが無いと書けないのでは?と思ってたわけです。
これが書けないってなるとまだshouldで様子見かと判断していたのですが、
実はこのケースについてはconfigでshouldをdisabledにしてもサポートされていました。
ちょっと安心。shouldを使える場所はshouldを使い続けて、書かざるを得ない部分だけexpectを使えばもしshould継続!って展開になっても対応は最小限で済むはず。
しかし、shouldが使えないとなるとコードをパッと見て「expectを使っているところは更新処理」だと判断しにくくなる点が不満ではあるなぁ。