Я пишу гем, который действует как клиент для удаленного API, поэтому я использую webmock, чтобы издеваться над удаленным API, тестируя с Cucumber с присутствующим rspec-mock.
В рамках моих тестов Cucumber я намерен заглушить свой API в предложении Given
, но затем я хотел бы указать, что удаленный API вызывается в предложении Then
.
Действительно простой пример:
Файл функции
Scenario: Doing something that triggers a call
Given I have mocked Google
When I call my library
Then it calls my Google stub
And I get a response back from my library
Определение шага
Given /I have mocked my API/ do
stub_request(:get, 'www.google.com')
end
When /I call my library/ do
MyLibrary.call_google_for_some_reason
end
Then /it calls my Google stub/ do
# Somehow test it here
end
Вопрос: как я могу убедиться, что моя заглушка Google вызывалась?
Примечание: я знаю, что мог бы использовать синтаксис expect(a_request(...))
или expect(WebMock).to ...
, но мне кажется, что я буду повторять то, что определено в моем предложении Given
.