2009-08-27 53 views
2

我已經看過rails guide to testing,但我似乎可以從我的測試中獲取夾具數據。我有一個夾具:鐵軌 - 如何從測試中抓取夾具數據

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

然後我有一個測試按照以下(其中EmployeePayPeriod是一個模型)

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 

顯然高於不工作。我看過指南。在引導它使用的代碼片段來說明你如何讓燈具數據:

@user = users(:david). 

看來,「用戶」不是模型(因爲通常慣例是,它會單數和大寫那麼,這是否。 「用戶」是從哪裏來的?如果它的自動生成應該有相當的「employee_pay_periods」我對象可用?(我嘗試過,但似乎並沒有工作)。

感謝

回答

3

相信用戶是一個基於yml文件名的約定,在這個例子中,他們有一個users.yml。所以,要更直接地回答你的問題,試試任何.yml夾具文件的名稱是。

一件也許從長遠來看更容易,雖然是一樣的東西FactoryGirlMachinist,或fixjour

+0

我的榮幸。祝你好運。 – theIV 2009-08-27 05:50:33

6

夾具需要在一個.yml文件,其名稱表名稱匹配(而不是模型名)。

承擔EmployeePayPeriod表名是employee_pay_periods,那麼你的夾具需要在test/fixtures/employee_pay_periods.yml,你應該有一個employee_pay_periods()方法自動生成用於訪問燈具。

確保您的燈具實際上正在加載。最新Rails會添加以下行來測試/ test_helper.rb中:

fixtures :all 

這每個測試用例之前加載所有的燈具。確保這一行在那裏,並沒有註釋掉。