1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
require 'spec_helper'
module RSpec
module Expectations
# so our examples below can set expectations about the target
ExpectationTarget.send(:attr_reader, :target)
describe ExpectationTarget do
context 'when constructed via #expect' do
it 'constructs a new instance targetting the given argument' do
expect(expect(7).target).to eq(7)
end
it 'constructs a new instance targetting the given block' do
block = lambda {}
expect(expect(&block).target).to be(block)
end
it 'raises an ArgumentError when given an argument and a block' do
expect {
expect(7) { }
}.to raise_error(ArgumentError)
end
it 'raises an ArgumentError when given neither an argument nor a block' do
expect {
expect
}.to raise_error(ArgumentError)
end
it 'can be passed nil' do
expect(expect(nil).target).to be_nil
end
it 'passes a valid positive expectation' do
expect(5).to eq(5)
end
it 'passes a valid negative expectation' do
expect(5).not_to eq(4)
end
it 'passes a valid negative expectation with a split infinitive' do
expect(5).to_not eq(4)
end
it 'fails an invalid positive expectation' do
expect {
expect(5).to eq(4)
}.to fail_with(/expected: 4.*got: 5/m)
end
it 'fails an invalid negative expectation' do
message = /expected 5 not to be a kind of Fixnum/
expect {
expect(5).not_to be_a(Fixnum)
}.to fail_with(message)
end
it 'fails an invalid negative expectation with a split infinitive' do
message = /expected 5 not to be a kind of Fixnum/
expect {
expect(5).to_not be_a(Fixnum)
}.to fail_with(message)
end
it 'does not support operator matchers from #to' do
expect {
expect(3).to == 3
}.to raise_error(ArgumentError)
end
it 'does not support operator matchers from #not_to' do
expect {
expect(3).not_to == 4
}.to raise_error(ArgumentError)
end
end
end
end
end
|