Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

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 tips: RSpecでコード実行回数をスマートに数える(翻訳)

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


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。