我很抱歉 - 我想這個答案太簡單了,我在樹林裏看到森林時遇到了一些麻煩。
假設你有一隻擁有許多綿羊的牧羊人。你有一個shepherd.features文件,旨在通過任何場景來測試這種關係。
在功能方面的文件,你可以創建一個矩陣表填入下面的測試牧羊人:
Given the following shepherds exist:
| shepherd | name |
| shepherd1 | shep1name |
| shepherd2 | shep2name |
| shepherd3 | shep3name |
| shepherd4 | shep4name |
在另一個矩陣表,你可以創建一個矩陣表填充試驗羊的列表。但是,您也想指定每隻綿羊屬於特定的牧羊人。當然,牧羊人可以有一隻以上的羊(順便說一句 - 這是我的問題的關鍵)。
如果你想shepherd1自己sheep1和sheep3,並shepherd2自己sheep2和sheep4,你只需做到以下幾點:
Given the following sheep exist:
| sheep | name | shepherd |
| sheep1 | sheep1name | shepherd1 |
| sheep2 | sheep2name | shepherd2 |
| sheep3 | sheep3name | shepherd1 |
| sheep4 | sheep4name | shepherd4 |
易Peasy!
現在,假設一個牧羊人不僅可以擁有多隻羊,還可以擁有一隻以上的牧羊人。換句話說,你有一個多對多的關係。在這種情況下,你會有一個名爲shepherd_sheep的連接器表。如果你想指定sheep1由shepherd1和shepherd2共同擁有;而牧羊人1也擁有綿羊3 - 你只會這樣做:
Given the following shepherd_sheep exist:
| shepherd_sheep | shepherd | sheep |
| shepherd_sheep1 | shepherd: "shepherd1" | sheep: "sheep1" |
| shepherd_sheep2 | shepherd: "shepherd3" | sheep: "sheep1" |
| shepherd_sheep3 | shepherd: "shepherd1" | sheep: "sheep3" |
...等等!
謝謝 - 我很欣賞反饋。很可能我的一些術語是錯誤的。我看了一些例子 - 看起來這些都是嚴格意義上的縮短重複的方法。我猜如果我能以更一般的方式提出我的問題 - 在我的.features文件中,只要另一個模型嚴格爲一對一關係,我就可以將一個變量或另一個模型放入模型中。我猜想還有一種方法可以添加一系列具有一對多關係的模型? –
@TimMitchell你仍然在描述大多數黃瓜不適用的用法。 「模型」,「變量」,「一對一關係」,「數組」,「一對多」等詞。這些描述都不應該在Gherkin中。這些單詞/場景應該在單元測試上。你在Gherkin中的功能步驟就像'給定一個用戶''當用戶添加博客帖子','然後創建博客文章'。非常頂級,而在下面,我們應該假設用戶有許多博客文章。專注於描述功能,而不是體系結構。 – AdamT
好的 - 我認爲也許這只是一個錯誤的交流 - 它可能至少與我的一些命名約定有一點關係。表中的'belongs_to_model'引用並不是指任何嘗試在Ruby模型本身中創建或複製'belongs_to'引用 - 這已經完成了。對my_model的引用也與它在Ruby模型本身中的含義沒有任何關係 - 這正是我在功能文件中將其命名的地方。我想要做的就是自動填充黃瓜文件中的數據。我真的覺得這很簡單。 –