14

我正在尝试为我正在开发的一个小 Rails 应用程序编写测试。Users 模型与其他用户具有 has_many through 关系(两种方式),并且用户与分配具有 has_many 关系。在 UI 端,用户可以选择另一个用户来附加新的分配。我希望能够对此进行测试。现在的问题是,我不知道如何使用 Capybara 从我不知道文本的项目列表中进行选择。我写了一个 rake 任务来随机生成我的测试数据库,虽然我可以查看数据库并以这种方式编写我的测试,但它当然会在我重置数据库的第二秒中断。

我只是在测试测试数据库中的分配数量是否改变了 1。我将 Rspec 与 Capybara 一起使用。

4

2 回答 2

17

假设<select>元素的 id 为“foo”。然后以下应该工作。

option = first('#foo option').text
select option, from: 'foo'
于 2013-05-27T14:31:30.410 回答
16

您可以找到选项元素,然后调用select_option它。例如,要选择下拉列表中的第三个元素:

all('#foo option')[2].select_option
于 2013-10-03T22:27:07.923 回答