2017-01-11 9 views
1

私は生産とテスト/開発環境のログを設定するには、このコードを持っている:テスト生産RSpecの持つ固有のコード - シナトラ

class ApplicationController < Sinatra::Base 
    configure :development, :test do 
    enable :logging 
    file = File.new("#{settings.root}/../../log/#{settings.environment}.log", 'a+') 
    file.sync = true 
    use Rack::CommonLogger, file 
    end 


    configure :production do 
    enable :logging 
    log_file = File.new("#{settings.root}/../../log/#{settings.environment}.log", 'a+') 

    STDOUT.reopen(log_file) 
    STDERR.reopen(log_file) 

    STDOUT.sync = true 
    STDERR.sync = true 
    end 
end 

問題がsimplecovことは、私は「として私は、生産ブロックをテストしていないよ述べています私の環境をspec_helperファイル内の 'テスト'に設定しています。

rspecで 'test'コードと 'production'コードの両方をテストする方法はありますか?

答えて

0

configureブロックの本体のコードを、環境変数を引数として取るメソッドに分割し、それらのメソッドに対して別々のテストを書くことができます。しかし、唯一の目標が100%のカバレッジに到達することであれば、コードを複雑にすることはお勧めします。

関連する問題