In Cucumber on Ruby w/rspec, how do I expect/assert a webmocked call in a Then clause? -
i'm writing gem acts client remote api, i'm using webmock mock out remote api, testing cucumber rspec-mock present too.
as part of cucumber tests intend stub api in given clause specify remote api called in then clause.
a basic example be:
feature file
scenario: doing triggers call given have mocked google when call library calls google stub , response library step definition
given /i have mocked api/ stub_request(:get, 'www.google.com') end when /i call library/ mylibrary.call_google_for_some_reason end /it calls google stub/ # somehow test here end the question: how can verify google stub has been called?
side note: i'm aware use expect(a_request(...)) or expect(webmock).to ... syntax feeling i'll repeating what's defined in given clause.
i answer myself, though verify correct and/or has no major pitfalls:
given /i have mocked api/ @request = stub_request(:get, 'www.google.com') end /it calls google stub/ expect(@request).to have_been_made.once end the bits note assignment of @request , expectation placed upon in then clause.
in limited test of 2 separate scenarios approach seems work.
Comments
Post a Comment