2010-12-04 6 views
5

В Rails автоматически генерируется функциональный тест (test/functional/products_controller_test.rb), я вижу следующий код:рельсов функциональный тест

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

    ...some tests here... 
end 

Вопросы, которые я являются:

  1. Где/как это метод вызова products() определено?

  2. Что делает products(:one) на самом деле означает? Глядя на код, это, вероятно, означает «создать один продукт», но как это работает?

N.B. Я новичок в Ruby/Rails, извиняюсь, если это тривиальные вопросы.

ответ

11

Если вы посмотрите в своей папке test/fixtures, вы увидите файл products.yml. Это создается автоматически при создании модели. В ваших тестовых файлах products(:one) ссылается на продукт в этом файле с надписью «один». Светильники автоматически загружаются в базу данных для тестов, а метод products() создается как удобный аксессор для этих объектов.

Вы можете добавить свои собственные объекты светильника по мере необходимости непосредственно в файл yml.

Смежные вопросы