Stack Exchange
rspec should ensure_length_of allow_nil
Model
validates_length_of :description, :maximum => 255, :allow_nil => true

spec_file
it { should ensure_length_of(:description).is_at_most(255).allow_nil }

return exeption
Failure/Error: it { should ensure_length_of(:description).is_at_most(255).allow_nil }
 NoMethodError:
   undefined method `allow_nil' for #<Shoulda::Matchers::ActiveModel::EnsureLengthOfMatcher:0x0000000acb03e0>

Pls, help!

There is no allow_nil method for Shoulda::Matchers::ActiveModel::EnsureLengthOfMatcher.
You could use allow_value:
it { should allow_value(nil).for(:description) }
it { should ensure_length_of(:description).is_at_most(255) }


Model
# frozen_string_literal: true

class MyModel < ActiveRecord::Base
  validates :description, length: { maximum: 255 }, allow_nil: true
end

Rspec
# frozen_string_literal: true

describe MyModel do
  describe 'validations' do
    it { is_expected.to allow_value(nil).for(:description) }
    it { is_expected.to validate_length_of(:description).is_at_most(255) }
  end
end

P.S. ensure_length_of is deprecated

You don't need allow_nil with validates_length_of if you're only validating the maximum of characters.

I can't change model, I need write only tests! It's problem :(
