ラベル rspec の投稿を表示しています。 すべての投稿を表示
ラベル rspec の投稿を表示しています。 すべての投稿を表示

2017年4月18日火曜日

rspecでtimecopで日時を固定したのにFactoryGirlのデータが固定されない

rspecのテストで特定の日時でのテストをしたくて、
timecopで日時を固定したのにFactoryGirlのデータが固定された日付ではなく、
現在日時のデータになってしまったので、調べました。

環境は以下です
timecop 0.8.0
factory_girl 4.5.0
rspec 3.5.0

テストデータとテストはこんな感じです。
FactoryGirl.define do
  factory :aaa do
    target_date Date.today.tomorrow
  end
end

Timecop.freeze(Date.parse('2017-04-04'))
aaa = FactoryGirl.create(:aaa)
expect(aaa.target_date == Date.today.tomorrow).to eq(true)
実行すると、trueにならずにテスト失敗となります。。

FactoryGirlの書き方を以下のようにすると、ちゃんと固定された日時を元に日付が入りました
target_date { Date.today.tomorrow }

参考URL
http://stackoverflow.com/questions/33110516/timecop-does-not-work-with-datetime-attributes-defined-in-factorygirl

2016年6月6日月曜日

rspecでFactoryGirlでCarrierWaveのデータを作成する

CarrierWaveのイメージを入れたFactoryGirlのデータを作りたかったので調べました。

テスト用の画像データを以下に置いた状態で、
spec/support/files/test.jpg
以下の形式で記述するとよさげです。

test_image { Rack::Test::UploadedFile.new(File.join(Rails.root, 'spec', 'support', 'files', 'test.jpg'))



参考URL
http://kzy52.com/entry/2014/01/03/094308

2016年2月16日火曜日

simplecovでrspecのテスト書いているのにカバレッジ0%のクラスがある

simplecovを使ってrailsのカバレッジを計測しているのですが、
異常に数値が低いなと思い、詳細を見ていったところ、
rspec書いているのに0%になっているクラスがいたので調べてみました。

修正前のrails_helper.rb
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
require 'simplecov'
require 'simplecov-rcov'
〜
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails'

修正後のrails_helper.rb
ENV["RAILS_ENV"] ||= 'test'
require 'simplecov'
require 'simplecov-rcov'
SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
SimpleCov.start 'rails'

require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rails'
〜

最初はsimplecovのrequireをrequireの中で一番下に書き、
rails_helper.rbの末尾のところでSimpleCov.startさせていました。
調べたところどうやら他のモジュールが読み込まれるよりも先に
simplecovを読み込ませるようにしないといけないようです。
カバレッジ0%だったものが修正後のものではちゃんと計測できていました。


参考URL
https://github.com/colszowka/simplecov/issues/77