有一部分BDD我真的很困惑。我有各種不同的請求規格來測試。結構如下:如何使用FactoryGirl構建嵌套模型是否存在Rails約定?
- 用戶的has_many產品
- 產品的has_many PriceLevels
- PriceLevel的has_many價格
我感到困惑如何去使用FactoryGirl設廠。我熟悉協會和特質的概念。我熟悉build
和create
的概念。但我不確定在什麼情況下使用這些。
我可以溝通我感到困惑的最好方法就是舉一些例子。
我有一個請求規格來測試
User
註冊。出於顯而易見的原因,我不在這裏使用工廠。這我明白。我有一個請求規格來測試
User
創建新的Products
。我用戶工廠爲create
。我假設我需要在這裏使用create
而不是build
,因爲ProductsController
中的CRUD方法在通過URL傳遞的id上執行ARfind
。如果我在這裏錯了,請糾正我。我有一個請求規格測試爲
Product
添加不同的PriceLevels
。這裏我使用兩個工廠:User
和Product
。我有一個請求規範來測試
User
的Product
的PriceLevel
添加不同Prices
。現在我最多有3家工廠:User
,Product
,PriceLevel
。
現在,如果Price
有類似Currency
一個has_and_belongs_to_many
?工廠正在失控。
我想說當我到PriceLevel
時,我想要一個工廠,讓我一次創建整個結構。然而,我不想每次創建整個結構。另外,這些工廠可以從下到上或從上到下創建。
哪種方式更好,自下而上或自上而下?我可以創建DRY代碼,讓我可以選擇單個工廠或一次創建整個shebang嗎?我可以將after(:create)
區塊包裹在特徵中嗎?我會在請求規格中使用build
vs create
嗎?
非常感謝您的關注!