2010-12-04 184 views
5

在Rails的自動生成功能測試(test/functional/products_controller_test.rb),我看到了下面的代碼:軌功能測試

  1. 在哪裏/是怎樣的:

    class ProductsControllerTest < ActionController::TestCase 
        setup do 
        @product = products(:one) 
        ... 
        end 
    
        ...some tests here... 
    end 
    

    ,我已經是問題方法調用products()定義?

  2. products(:one)究竟是什麼意思?看代碼,這可能意味着「創建一個產品」,但這是如何工作的?

N.B.我是Ruby/Rails的新手,如果這些都是微不足道的問題,我很抱歉。

回答

11

如果你看看你的test/fixtures文件夾,你會看到一個products.yml文件。這是在創建模型時自動生成的。在您的測試文件中,products(:one)指的是該文件中標爲「one」的產品。燈具會自動加載到數據庫中以進行測試,並且將創建products()方法作爲這些對象的便捷訪問器。

您可以根據需要直接在yml文件中添加自己的夾具對象。