Sha256: dc9a6d5d6915edcf663220bc15d79a077fb52148569d2196cab1f5c00e28ba12

Contents?: true

Size: 644 Bytes

Versions: 2

Compression:

Stored size: 644 Bytes

Contents

# These shared example test that a subject's accessor method is:
#
#   A) Publicly exposed
#   B) Not nil
#   c) Result "equal" to the `let` with the same name in context
#
# @param [Symbol] Method name as symbol
# @param [*args] Arbitrary arguments to pass to the `send` call
#
RSpec.shared_examples 'a public accessor method' do |target, *args|
  let(:result) do
    subject.public_send(target, *(args.map { |i| public_send(i) }))
  end

  let(:expected) do
    public_send(target)
  end

  it "publicly exposes ##{target}" do
    expect(result).not_to be_nil
  end

  it 'has expected values' do
    expect(result).to eq(expected)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
flash_messenger-0.0.2 spec/support/shared_examples.rb
flash_messenger-0.0.1 spec/support/shared_examples.rb