2017-01-11 3 views
1

Ich habe diesen Code Protokollierung für Produktion und Test/Entwicklungsumgebungen zu konfigurieren:Test-Produktion spezifischer Code mit rspec - Sinatra

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 

Die Frage ist simplecov die besagt, ich bin nicht der Produktionsblock testet wie ich Ich setze meine Umgebung so, dass sie in meiner spec_helper-Datei "getestet" wird.

Gibt es eine Möglichkeit, Test- und Produktionscode mit rspec zu testen?

Antwort

0

Sie könnten den Code im Hauptteil des configure Blocks in eine oder Methoden auflösen, die den Umgebungswert als Argument annehmen, und dann einen separaten Test für diese Methoden schreiben. Ich würde jedoch davon abraten, den Code zu komplizieren, wenn das einzige Ziel darin besteht, eine 100% ige Abdeckung zu erreichen.

Verwandte Themen