在Rails自动生成的功能测试(test/functional/products_controller_test.rb
)中,我看到以下代码:
class ProductsControllerTest < ActionController::TestCase
setup do
@product = products(:one)
...
end
...some tests here...
end
我的问题是:
方法调用products()
的位置/方式是什么?
products(:one)
实际上意味着什么?看一下代码,它可能意味着“创建一个产品”,但它是如何工作的?
N.B。我是Ruby / Rails的新手,如果这些都是一个微不足道的问题,请道歉。
答案 0 :(得分:11)
如果查看test / fixtures文件夹,您将看到products.yml文件。这是在创建模型时自动生成的。在您的测试文件中,products(:one)
指的是标有“one”的文件中的产品。 Fixtures会自动加载到数据库中进行测试,并创建products()
方法作为这些对象的便捷访问器。
您可以根据需要直接在yml文件中添加自己的灯具对象。