Я провожу тестирование по rspe c для канадского почтового индекса. Он должен пройти тест, если он соответствует формату регулярных выражений. Ниже мой код
require 'rails_helper'
RSpec.describe Postal, type: :model do
context 'validation tests' do
it 'should match regex form' do
postal=(Postal.new(postalcode: 'V5A1S6'))
expect((postal.postalcode).to match(/\A^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$\z/))
end
end
end
Однако я получаю это сообщение об ошибке.
1) Postal validation tests should match formatting
Failure/Error: expect((postal.postalcode).to match(/\A^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$\z/))
ArgumentError:
bad value for range
# ./spec/models/postal_spec.rb:22:in `block (3 levels) in <main>'
Что я должен сделать, чтобы заставить его пройти проверку регулярного выражения? я не уверен, какая часть кода неправильная, или есть ли лучшее решение для проверки регулярных выражений в rspe c.
Потому что в моей модели проверки у меня это есть, и регулярное выражение работает отлично.
validates :postalcode, presence: true, length: {minimum: 6, maximum: 6}, format: { with: /\A^(?!.*[DFIOQU])[A-VXY][0-9][A-Z] ?[0-9][A-Z][0-9]$\z/}
Также мне было любопытно. Какие другие хорошие тесты rspe c будут иметь смысл при тестировании канадского почтового индекса или любых других почтовых индексов. Все, что я знаю до сих пор, это тестирование границ символов и формата регулярных выражений.