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 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147
|
require File.expand_path('../../spec_helper', __FILE__)
describe 'any_instance_of' do
context 'stubs for instance methods of a class' do
context 'via block form' do
context 'for existing methods' do
it "can be defined" do
a_class = Class.new { def some_method; 'value'; end }
any_instance_of(a_class) { |c| stub(c).some_method { 'value' } }
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new { def some_method; 'original value'; end }
any_instance_of(a_class) { |c| stub(c).some_method { 'value' } }
RR.reset
instance = a_class.new
expect(instance.some_method).to eq 'original value'
end
end
context 'for non-existing methods' do
it "can be defined" do
a_class = Class.new
any_instance_of(a_class) { |c| stub(c).some_method { 'value' } }
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new
any_instance_of(a_class) { |c| stub(c).some_method { 'value' } }
RR.reset
instance = a_class.new
expect(instance).not_to respond_to(:some_method)
end
end
end
context 'via hash form' do
context 'for existing methods' do
it "can be defined" do
a_class = Class.new { def some_method; 'value'; end }
any_instance_of(a_class, :some_method => lambda { 'value' })
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new { def some_method; 'original value'; end }
any_instance_of(a_class, :some_method => lambda { 'value' })
RR.reset
instance = a_class.new
expect(instance.some_method).to eq 'original value'
end
end
context 'for non-existing methods' do
it "can be defined" do
a_class = Class.new
any_instance_of(a_class, :some_method => lambda { 'value' })
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new
any_instance_of(a_class, :some_method => lambda { 'value' })
RR.reset
instance = a_class.new
expect(instance).not_to respond_to(:some_method)
end
end
end
end
context 'stub-proxies for instance methods of a class' do
it "can be defined" do
a_class = Class.new { def some_method; 'value'; end }
any_instance_of(a_class) { |c| stub.proxy(c).some_method { 'value' } }
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new { def some_method; 'original value'; end }
any_instance_of(a_class) { |c| stub.proxy(c).some_method { 'value' } }
RR.reset
instance = a_class.new
expect(instance.some_method).to eq 'original value'
end
end
context 'mocks for instance methods of a class' do
context 'for existing methods' do
it "can be defined" do
a_class = Class.new { def some_method; 'value'; end }
any_instance_of(a_class) { |c| mock(c).some_method { 'value' } }
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new { def some_method; 'original value'; end }
any_instance_of(a_class) { |c| mock(c).some_method { 'value' } }
RR.reset
instance = a_class.new
expect(instance.some_method).to eq 'original value'
end
end
context 'for non-existing methods' do
it "can be defined" do
a_class = Class.new
any_instance_of(a_class) { |c| mock(c).some_method { 'value' } }
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new
any_instance_of(a_class) { |c| mock(c).some_method { 'value' } }
RR.reset
instance = a_class.new
expect(instance).not_to respond_to(:some_method)
end
end
end
context 'mock-proxies for instance methods of a class' do
it "can be defined" do
a_class = Class.new { def some_method; 'value'; end }
any_instance_of(a_class) { |c| mock.proxy(c).some_method { 'value' } }
instance = a_class.new
expect(instance.some_method).to eq 'value'
end
it "can be reset" do
a_class = Class.new { def some_method; 'original value'; end }
any_instance_of(a_class) { |c| mock.proxy(c).some_method { 'value' } }
RR.reset
instance = a_class.new
expect(instance.some_method).to eq 'original value'
end
end
end
|