导轨功能测试

时间:2010-12-04 04:46:07

标签: ruby-on-rails ruby functional-testing

在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)实际上意味着什么?看一下代码,它可能意味着“创建一个产品”,但它是如何工作的?

  3. N.B。我是Ruby / Rails的新手,如果这些都是一个微不足道的问题,请道歉。

1 个答案:

答案 0 :(得分:11)

如果查看test / fixtures文件夹,您将看到products.yml文件。这是在创建模型时自动生成的。在您的测试文件中,products(:one)指的是标有“one”的文件中的产品。 Fixtures会自动加载到数据库中进行测试,并创建products()方法作为这些对象的便捷访问器。

您可以根据需要直接在yml文件中添加自己的灯具对象。