Допустим, у нас есть класс:
class ObjectWithCaching
def cached_attribute(key, cache_handler)
cache_handler.cache(key) { expensive_operation }
end
def expensive_operation
#...
end
end
И мы уже протестировали cache_handler, поэтому мы знаем, что он будет выполнять блок только тогда, когда key
не найден в cache
.
Мы хотим проверить, правильно ли выполнен cache_handler # cache.
Вопрос: Как написать оставшуюся ожидающую спецификацию?
describe ObjectWithCaching, "#cached_attribute" do
let(:key) { double }
let(:cache_handler) { double }
specify do
cache_handler.should_receive(:cache).with(key)
subject.cached_attribute(key, cache_handler)
end
it "passes #expensive_operation to block of cache_handler#cache" do
pending
subject.cached_attribute(key, cache_handler)
end
end