Rails tips: コードとテストを同じファイルに書けるRSpec autorun(翻訳)

概要

原著者の許諾を得て翻訳・公開いたします。

Rails tips: コードとテストを同じファイルに書けるRSpec autorun(翻訳)

もう皆さまもアプリではテストを書くべきであることは納得いただいているかと思います。これまでにスパイスタブモックなどのさまざまなスタブをご紹介しましたが、今回はもう少し一般的なお題にしたいと思います。

ほとんどの場合、コードとテストはそれぞれ別ファイルに保存するのが自然ですが、たとえば教育現場やデモなどでコードとテストを同じファイルに書く必要が生じることがあります。こんなときにはRSpecのautorun機能が役に立ちます。rspec gemがインストール済みであれば、ファイルを1つ作成してたとえばtest.rbという名前にし、ファイルの冒頭にrspec/autorunを書いておけば、コードとテストをひとつのファイルに書けるようになります。

require 'rspec/autorun'

class Person
  def initialize(first_name:, last_name:)
    @first_name = first_name
    @last_name = last_name
  end

  def name
    [first_name, last_name].join(" ")
  end

  private
  attr_reader :first_name, :last_name
end

describe Person do
  describe "#name" do
    it "returns full name" do
      person = Person.new(first_name: "Tom", last_name: "Black")

      expect(person.name).to eq("Tom Black")
    end
  end
end

後はtest.rbを実行すればテストの結果を表示できます。この種のテストは、TDDの学習中に基本的な部分を動かしてみたいときに非常に便利です。

RSpec & TDDの電子書籍を無料でダウンロード

もっと稼ぎたい方や会社をさらに発展させたい方へ: テスティングのスキルの重要性にお気づきでしょうか?テストを正しく書き始めることが、唯一のファーストステップです。無料でダウンロードいただける私の書籍『RSpec & Test Driven Developmentの無料ebook』をどうぞお役立てください。

関連記事

Rails: テスティングアンチパターン –前編(翻訳)

Rails tips: RSpecでコード実行回数をスマートに数える(翻訳)

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ