Ruby on rails 使用无效选项与Capybara和RSpec一起选择下拉列表

Ruby on rails 使用无效选项与Capybara和RSpec一起选择下拉列表,ruby-on-rails,capybara,Ruby On Rails,Capybara,我正在尝试编写一个测试,检查如果与Capybara一起发送的值无效,是否返回了错误。问题是,我的一个表单字段是一个字段,我希望确保无效输入将导致表单错误 问题是,我只能选择选择框中存在的字段,根据模型的验证,所有字段都是有效的。我想选择一个无效字段或以某种方式输入一些无效数据,以便测试错误消息 我该怎么做?注释中提到的解决方案-测试模型,而不是在集成测试中进行测试。谢谢Dana先生和Aponing 您的测试有JavaScript可用吗?您可以使用JS向下拉列表中添加新选项。但是问问你自己,什么样

我正在尝试编写一个测试,检查如果与Capybara一起发送的值无效,是否返回了错误。问题是,我的一个表单字段是一个字段,我希望确保无效输入将导致表单错误

问题是,我只能选择选择框中存在的字段,根据模型的验证,所有字段都是有效的。我想选择一个无效字段或以某种方式输入一些无效数据,以便测试错误消息


我该怎么做?

注释中提到的解决方案-测试模型,而不是在集成测试中进行测试。谢谢Dana先生和Aponing

您的测试有JavaScript可用吗?您可以使用JS向下拉列表中添加新选项。但是问问你自己,什么样的现实情况会导致下拉失败?下拉列表中的选项用于什么?比如说,用户可以选择删除哪个朋友。一个真实的情况是,如果所说的朋友已经删除了用户,那么删除朋友是错误的。因此,为了模拟这种情况,您可以选择好友,然后删除好友,然后提交。这种情况可能是恶意用户试图更改选项的值。现在我想起来了,我认为作为模型测试而不是集成测试会更好,对吗?@CalvinL:对,测试模型验证这对模型来说已经足够好了。在我的例子中,我希望确保用户从允许他们从中选择的列表中进行选择,这将引入当前的_用户,这将更多地放在控制器逻辑中。在这种情况下,它是一个基于此字段的筛选结果,带有此值检查,以确保该值位于每个用户允许的列表中。