Expect calls to read_attribute depending on cache presence

上级 f4810647
...@@ -51,12 +51,16 @@ describe RedisCacheable do ...@@ -51,12 +51,16 @@ describe RedisCacheable do
context 'when there is no cached value' do context 'when there is no cached value' do
it 'reads the attribute' do it 'reads the attribute' do
expect(instance).to receive(:read_attribute).and_call_original
expect(subject).to eq(payload[:name]) expect(subject).to eq(payload[:name])
end end
end end
context 'when there is a cached value' do context 'when there is a cached value' do
it 'reads the cached value' do it 'reads the cached value' do
expect(instance).not_to receive(:read_attribute)
instance.cache_attributes(payload) instance.cache_attributes(payload)
expect(subject).to eq(payload[:name]) expect(subject).to eq(payload[:name])
...@@ -81,6 +85,8 @@ describe RedisCacheable do ...@@ -81,6 +85,8 @@ describe RedisCacheable do
context 'when there is no cached value' do context 'when there is no cached value' do
it 'reads the attribute' do it 'reads the attribute' do
expect(instance).to receive(:read_attribute).and_call_original
expect(subject).to be_instance_of(ActiveSupport::TimeWithZone) expect(subject).to be_instance_of(ActiveSupport::TimeWithZone)
expect(subject).to be_within(1.minute).of(Time.zone.now) expect(subject).to be_within(1.minute).of(Time.zone.now)
end end
...@@ -88,6 +94,8 @@ describe RedisCacheable do ...@@ -88,6 +94,8 @@ describe RedisCacheable do
context 'when there is a cached value' do context 'when there is a cached value' do
it 'reads the cached value' do it 'reads the cached value' do
expect(instance).not_to receive(:read_attribute)
instance.cache_attributes(time: Time.zone.now) instance.cache_attributes(time: Time.zone.now)
expect(subject).to be_instance_of(ActiveSupport::TimeWithZone) expect(subject).to be_instance_of(ActiveSupport::TimeWithZone)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册