2016-06-30 9 views
0

Ich habe eine Frage bezüglich der Datei rails_helper.rb, die Rspec erzeugt. Ich habe alles gut funktioniert, aber es gibt etwas, das ich nicht bekomme. Ich weiß, was in diese Datei (das Support-Verzeichnis, die Datenbank-Reiniger ..) gehen muss. Und ich habe mindestens hunderte Beispiele von Leuten gesehen, die diese Datei in ihre Feature-, Modell- und Controller-Tests einbeziehen mussten.rails_helper.rb-Datei (Tests bestehen auch, wenn ich sie nicht benötige)

Betrachten Sie dieses Beispiel, dass ich in meiner app haben:

require 'rails_helper' 

describe User do 

    it "is valid with valid attributes" do 
    user = build(:user) 
    expect(user).to be_valid 
    end 

    it "is invalid when username is blank" do 
    user = build(:user, username: "") 
    expect(user).to_not be_valid 
    end 
                                                                                              it "is invalid when username is too long" do 
    user = build(:user, username: "a" * 21) 
    expect(user).to_not be_valid 
    end 

    it "is invalid when username is too short" do 
    user = build(:user, username: "a" * 3) 
    expect(user).to_not be_valid 
    end 
end 

Und wenn ich die "require_helper.rb" einfach entfernen - nichts passiert? Die Tests bestehen noch? Und ich habe ungefähr 20 Tests, bei denen ich diese Zeile entferne, die sie immer noch bestehen (in einigen habe ich versucht, die ActiveRecord Modelle ohne Fabrikmädchen direkt zu benutzen und es geht immer noch)!

Im mit: factory_girl, Datenbank-Reinigern, rspec 3 und Schienen 4.2

Gibt es etwas, das ich ist fehlt? Sollte es nicht einen Fehler geben?

Tnx, Tom

Antwort

0

Hat das Projekt eine .rspec Datei im Stamm haben? Dies wird häufig verwendet, um den RSpec-Helfer automatisch zu benötigen.

+0

Ja, es gibt eine .rspec-Datei, aber nur spec_helper.rb. Der rails_helper.rb sollte den gesamten Rails-Stack laden, aber spec_helper.rb ist für alle Nicht-Rails-Klassen (zumindest was ich gelesen habe). –

+1

Verwendet Ihr Projekt Spring? Wenn Sie dem Befehl rspec den Präfix 'DISABLE_SPRING = 1 'voranstellen, sehen Sie dasselbe Verhalten? –

+0

Ja, du hast recht, es war wegen des Frühlings (leider habe ich vergessen zu erwähnen, dass ich es benutze). Just disabled es und rails beschweren sich, dass es konstante User nicht beheben kann. Tnx Andy :) –