2009-08-27 7 views
2

Ich habe mir die rails guide to testing angesehen, aber ich kann scheinen, Fixture-Daten aus meinem Test zu bekommen. Ich habe eine Leuchte:Rails - wie man Fixture-Daten aus Tests erhält

one: 
    pay_period: one 
    employee: kent 
    cpp: 50 
    ei: 40 
    tax: 100 
    vacation_pay: 30 

Dann habe ich einen Test nach unten (wo EmployeePayPeriod ist ein Modell)

require 'test_helper' 
class EmployeePayPeriodTest < ActiveSupport::TestCase 

    # Replace this with your real tests. 
    test "Calculate wages under 80 hours correctly" do 
    p = EmployeePayPeriod(:one) 
    assert true 
    end 
end 

Offensichtlich ist die oben nicht funktioniert. Ich habe den Führer angeschaut. In der Führung verwendet es einen Code-Schnipsel zu veranschaulichen, wie Sie Fixturedaten erhalten:

@user = users(:david). 

Es scheint, dass ‚Benutzer‘ kein Modell ist (weil die normale Konvention, dass es würde Singular und aktivierte So, wo. ‚Nutzer‘ kommen? Wenn seine automatisch generierte sollte es ein vergleichbares Objekt für mich verfügbar ‚employee_pay_periods‘ sein? (ich habe versucht, aber es scheint nicht zu funktionieren).

Dank

Antwort

3

ich glaube Benutzer ist eine Konvention, die auf dem Dateinamen von yml basiert, im Beispiel haben sie eine users.yml. Also, um Ihre Frage direkter zu beantworten, versuchen Sie, was auch immer Name Ihrer .yml Fixture Datei ist.

Etwas, das leichter auf langer Sicht sein könnte, aber ist so etwas wie FactoryGirl, Machinist oder fixjour

+0

Mein Vergnügen. Viel Glück mit dem Fixture'ing. – theIV

6

Die Befestigung in einem .yml Dateinamen, das sein muss, stimmt mit dem Tabellennamen (nicht die Modellnamen).

den Tabellennamen für EmployeePayPeriod Unter der Annahme employee_pay_periods, dann muss das Gerät im test/fixtures/employee_pay_periods.yml sein, und Sie sollten eine employee_pay_periods() Methode automatisch generiert für den Zugriff auf die Geräte haben.

Vergewissern Sie sich, dass Ihre Geräte tatsächlich geladen werden. Neueste Rails wird die folgende Zeile zu testen/test_helper.rb hinzufügen:

fixtures :all 

Dies lädt alle Geräte vor jedem Testfall. Stellen Sie sicher, dass diese Zeile vorhanden und nicht auskommentiert ist.

Verwandte Themen