読者です 読者をやめる 読者になる 読者になる

RSpec 3.2 has been released! されたので Notable Changes をメモ

これね。 http://rspec.info/blog/2015/02/rspec-3-2-has-been-released/

超絶抄訳です。

Windows CI

RSpec 3.1リリースした時にWindows上で動かなくしちまったらしい(3.1.xのパッチリリースでは直している)。なのでWindows環境でのCIを追加したぜ!という話。

Core: Pending Example Output Includes Failure Details

Pending exampleの出力にfailureメッセージ(?)を含むようにしたので、Pendingの詳細知りたい場合にわざわざコードを確認しなくてもおk。

Core: Each Example Now Has a Singleton Group

(うーん、日本語にうまく訳せないのだががが、)各Exampleからそれに対するExample groupの暗黙的な一部として扱うようにしたので、Example groupに対して適用されるメタデータがExampleにも適用されるとかなんとか。

Core: Performance Improvements

rspec-coreのオブジェクトアロケーションを30%ほど削減したのでパフォーマンスがアップ。

Core: New Sandboxing API

RSpec自身のテストのために利用されていたサンドボックス機能を公開APIにしたのでサードバーティなRSpec extensionsのテストでも利用できるぜっていう話。

Core: Shared Example Group Improvements

Shared example groupsのバグが直った!

  • Shared exampleでのFailuresで正しくバックトレースを出力するようにした
  • Shared exampleでのFailuresで出力されるre-runコマンドが正しくre-runされるようになった
  • Shared exampleへの行フィルタが正しく動くようになった

Expectations: Chain Shorthand For DSL-Defined Custom Matchers

カスタムマッチャを定義するDSLchainが短く書けるようになった。

Expectations: Output Matchers Can Handle Subprocesses

Outputマッチャでサブプロセスの出力も検証可能になった。

Expectations: DSL-Defined Custom Matchers Can Now Receive Blocks

カスタムマッチャを定義するDSLで作ったマッチャがブロックを受け取れるようになった。block_argメソッドな。

Mocks: any_args Works as an Arg Splat

any_argsマッチャが賢くなって、部分的な引数リストに適用出来るようになった。

Mocks: Mismatched Args Are Now Diffed

モックの引数マッチャでdiffがpretty-printされるようになった。これは見やすい。

Mocks: Verifying Doubles Can Be Named

RSpec 3.0と3.1で追加したテストダブルタイプにオプション名をサポートするのを忘れてて(テヘペロ)、3.2でサポートされたぜ。という話。

Rails: Instance Doubles Support Dynamic Column Methods Defined by ActiveRecord

ActiveRecordベースのinstance_doubleではテーブルカラム名メソッドははじめてコールされるタイミングで動的生成されるので、動的生成されるまでmethod_defined?が意図した通りに機能せず分かりづらい。なのでinstance_double生成時点で解決されるようにした。

Rails: Support Ruby 2.2 with Rails 3.2 and 4.x

タイトルの通り :)

Rails: New Generator for ActionMailer Previews

Rails 4.1でリリースされたActionMailer previewsがデフォルトtestディレクトリに出力されて、RSpecspecディレクトリを利用するのでうまく統合できてなかったので、RSpec 3.2でspecディレクトリに生成されるように統合したぜ。