14801


Railsプロジェクト上で、rails runnerを使って、以下にバッチを作ったとします。

lib/tasks/hogehoge.rb

このファイルをrspecを使ってテストしたい場合、

  * どのパスに
  * どうやって

記述をしたらよいでしょうか、ご回答宜しくお願い致します。


CC BY-SA 3.0
2015-08-24T01:48:25.007
14766
2015-08-24T10:14:07.730
5330
question
ruby-on-rails ruby rspec
rails runnerで作られたバッチのspecによるテスト方法


僕だったらロジックの大半をクラスメソッドに書いて、そのクラスをテストします。  
テスト容易性を重視した実装にする、というアプローチです。

[code]

    # lib/tasks/hogehoge.rb
    Hoge.do_something
    
    # app/models/hoge.rb
    class Hoge < ActiveRecord::Base
      def self.do_something
        # ...
      end
    end
    
    # spec/models/hoge_spec.rb
    describe Hoge do
      describe '::do_something' do
        it 'does something' do
          expect(Hoge.do_something).to blah blah...
        end
      end
    end
    
[/code]

ちなみに[Everyday Rails -
RSpecによるRailsテスト入門](https://leanpub.com/everydayrailsrspec-
jp/)の第10章でもこのアプローチが紹介されています。  
ご参考までに。


CC BY-SA 3.0
2015-08-24T10:14:07.730
14801
2015-08-24T10:14:07.730
85
14766
answer