我有一个<textarea>
字段(Rails模型属性),我必须测试它是否显示允许的最大长度错误消息。我必须使用启用了Capybara,Selenium等的系统规范来实现这一点。
# model
class Model < ActiveRecord::Base
validates_length_of :description, maximum: 1000
end
# view
<label for="description">Description</label>
<textarea maxlength="1000" id="description">Some text</textarea>
# RSpec
RSpec.describe "Model", type: :system do
it "should fail" do
visit edit_model_path(@model)
fill_in "Description", with: "abcdefghijklmnopqrstuvwxyz"*1000
# ...
end
end
我尝试在<textarea>
中填充长度超过1000个字符的文本,并且(maxlength="1000"
),它只插入文本的前1000个字符到<textarea>
中,这使得我无法测试最大长度错误消息输出。
我认为测试的一种方法是在RSpec示例中更改<textarea>
的maxlength
属性,这样我就可以填充超过1000个字符,使我能够有效地测试最大长度错误。
是否可以使用RSpec Capybara、Selenium等更改maxlength
属性?
1条答案
按热度按时间bq9c1y661#
基于@max注解,这里有一个(有争议的)方法可以通过使用Selenium在RSpec中更改
<textarea>
的maxlength
属性: