rspec 2: обнаруживать вызов метода, но он все еще выполняет свою функцию

Я хочу проверить, вызывался ли метод ровно (n) раз, , но Я все еще хочу, чтобы этот метод выполнял свою исходную функцию . Рассмотрим простую систему создания эскизов, которая кэширует файл эскиза, и убедитесь, что исполняемый файл ImageMagick "convert", который создает эскиз, вызывается только при первом запросе.

  it "this passes: should detect a cached version" do
    thumbnail_url = thumbnail_url_for("images/something.jpg")
    get thumbnail_url
    last_response.should be_ok
    Sinatra::Thumbnail.should_not_receive(:convert)
    get thumbnail_url
    last_response.should be_ok
  end

  it "this fails:  should detect a cached version" do
    Sinatra::Thumbnail.should_receive(:convert).exactly(1).times
    thumbnail_url = thumbnail_url_for("images/something.jpg")
    get thumbnail_url
    last_response.should be_ok
    get thumbnail_url
    last_response.should be_ok
 end

В моем случае я ухожу с первой попытки, но могут быть случаи, когда Я не. Второй не работает, потому что обнаружен вызов Thumbnail.convert , но сам метод ничего не делает. Есть ли способ просто обнаружить вызов метода и сделать его оригинальным?

Кстати: Я подозреваю, что этот вопрос очень похож, но потом я теряюсь в описании, и он остается без ответа ...

12
задан Community 23 May 2017 в 10:24
поделиться

0 ответов

Другие вопросы по тегам:

Похожие вопросы: