RSpecで役に立ちそうないくつかのヒント(翻訳)

概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: A Few RSpec Helpful Hints 公開日: 2017/07/12 著者: Jake Yesbeck RSpecで役に立ちそうないくつかのヒント(翻訳) Rubyのテスティングにおける二大勢力といえば、RSpecとMiniTestです。RSpecは(訳注: 英語的に)非常に表現力の豊かなテスティングフレームワークであり、テストを読みやすくする素晴らしい機能やヘルパーが多数用意されています。ここでは、RSpecのテストを書きやすく、読みやすく、メンテしやすくするのに役立つ、あまり知られていないテクニックをご紹介いたします。 以下は、BooksとAuthorsがあるシステムのコードです。読みやすいテストコードを書いてみましょう。 class Book attr_reader :title, :genre def initialize(title, genre) @title = title @genre = genre end end class Author attr_reader :books def initialize(name, books) @name = name @books = Array(books) end def has_written_a_book? !books.empty? end end subject変数とlet変数 subject変数やlet変数の宣言は、specの繰り返しを避けてDRYに書くよい方法のひとつです。 subject変数やlet変数を使わないと、たとえば「Authorにnameがあること」というアサーションは次のようになってしまうでしょう。 … Continue reading RSpecで役に立ちそうないくつかのヒント(翻訳)