функциональный тест рельсов - PullRequest
5 голосов
/ 04 декабря 2010

В автоматически сгенерированном функциональном тесте 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, извиняюсь, если это тривиальные вопросы.

1 Ответ

11 голосов
/ 04 декабря 2010

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

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

...