Rails/Ruby - テストカバレッジを調べる simplecov
自分の書いたテストが、全体コードの何割を占めているかを示す指標をテストカバレッジといいます。数値化されるのでテストの妥当性の検証に役立ちます。
今回はそのカバレッジを調べるRubyライブラリ simplecov を調べてみました。
インストール
gemパッケージですので次の通りインストールします。
$ gem install simplecov
rails で使う場合は、Gemfile に次のように追加してbundle します。
gem 'simplecov', :require=>false, :group=>true
テストで計測の時に require するのでここでは読み込まないようします
使い方
ヘルパメソッドに追加(初回のみ)
test/test_helper.rb (RSpecの場合は spec/spec_helper)の一番最初に次の行を追加しまう
require 'simplecov'
SimpleCov.start
テストを作成し実行する
今回は、Rails で以下のポストモデルのテストを作成します
app/models/post.rb
class Post < ActiveRecord::Base
validates_presence_of :body
validates_length_of :body, minimum:1, maximum:140
end
spec/models/post_spec.rb
require 'spec_helper'
describe Post do
it "post create" do
expect(Post.new(body:"title")).to have(0).errors_on(:body)
end
it "[error]post create" do
expect(Post.new(body:"")).to have(2).errors_on(:body)
end
it "[error]post create" do
expect(Post.new(body:"too large str"*15)).to have(1).errors_on(:body)
end
end
テスト実行
$ bundle exec rspec spec/models/post_spec.rb
カバレッジを確認する
coverage/index.html
が出力されるので中身を確認します。
Rubyスクリプティングテクニック ―テスト駆動による日常業務処理術
- 作者: Brian Marick,菅野良二
- 出版社/メーカー: オライリー・ジャパン
- 発売日: 2008/02/23
- メディア: 単行本
- 購入: 9人 クリック: 214回
- この商品を含むブログ (40件) を見る