这可能是一个非常简单的问题,但我对黄瓜来说相对较新。
我有一个ruby-on-rails网络应用程序,我正在使用黄瓜进行测试。
在要素文件中,我需要生成一个具有多个has_many属性的模型。
我正在使用矩阵方法创建类似的模型......
And the following my_models exist:
| name | date | belongs_to_model | etc |
| my_model | 2014-02-09 | belongs_to_model: "belongs_to_model1" | ... |
问题是,我无法弄清楚如何使用has_many属性填充模型。显然,它必须作为某种数组来完成,但我无法弄清楚如何。
有什么建议吗?
谢谢!
答案 0 :(得分:2)
在Rails中,Cucumber通常用于BDD。您的断言通常是网页上的项目。黄瓜通常不用于制作单元级断言。对于单元级别测试,我建议您查看rspec和rspec-rails。
你坚持“我无法弄清楚如何用has_many属性填充模型”,但这是因为你试图解决错误的问题(在我看来)。
查看示例here。如您所见,它们是非常高级的场景。没有什么可以试图描述底层架构。
答案 1 :(得分:0)
我道歉 - 我认为这个问题的答案非常简单,以至于我在树林中看到森林时遇到了一些麻烦。
假设你有一只有很多绵羊的牧羊人。你有一个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" |
......等等!