Integrate test env - #2
Conversation
| c.before { allow($stderr).to receive(:puts) } | ||
|
|
||
| # XXX: Sensu plugins run in the context of an at_exit handler. This prevents | ||
| # XXX: code-under-test from being run at the end of the rspec suite. |
There was a problem hiding this comment.
@robbl-as die ganze Veranstaltung hier ist Cargo-Code at its best. Ohne den Zirkus machen die Test-Runs komisches Zeug, aber ich hab nicht im Ansatz begriffen, was hier passiert. Das ist zum einen sowieso schlecht, zum anderen würde ich gern die Gelegenheit nutzen und lernen. Weißt du, was hier abgeht? Kannst du es mir erklären?
| stub_request( | ||
| :get, | ||
| 'https://api.trello.com//1/lists/abcde/cards/?key=12345&token=12345' | ||
| ).to_return(body: '[]', status: 200) |
There was a problem hiding this comment.
@stefan-as Yeah ... Das sieht ja immer besser aus :)
Jetzt kannst du auch noch Expectations auf dem Stub ausführen und zwar nachdem die Aktion ausgeführt wurde, womit du dann das Arrange-Act-Assert-Prinzip einhalten kannst. Schau mal hier: https://github.com/bblimke/webmock#setting-expectations-in-rspec-on-the-stub
| check.config[:list] = 'abcde' | ||
| expect(-> { check.run }).to raise_error Net::HTTPServerException | ||
|
|
||
| expect(check).to receive(:output).with('No new incidents') |
There was a problem hiding this comment.
@stefan-as Und auch hier kannst du die Assertion erst nach der Aktion machen, indem du allow(check).to receive(:output) und expect(check).to have_received(:output).with('No new incidents') benutzt. Ref: https://relishapp.com/rspec/rspec-mocks/v/3-7/docs/basics/allowing-messages
PS: RSpec checkt hier sogar für dich, dass die Methode, die du mit allow stubst auch existiert. Solltest du also irgendwann die Methode umbenennen, fällt der Test um und du stubst nicht eine nicht existierende Methode.
| expect(-> { check.run }).to raise_error Net::HTTPServerException | ||
|
|
||
| expect(check).to receive(:output).with('No new incidents') | ||
| expect(-> { check.run }).to raise_error SystemExit |
There was a problem hiding this comment.
@stefan-as Und hier kannst du dir das Lambda auch sparen, da expect auch direkt nen Block frisst.
expect { check.run }.to raise_error(SystemExit)
|
@aboutNisblee hab deine Vorschläge eingearbeitet. Über eine Erklärung zu diesem |
No description provided.