feat(doubles): add an any-call matcher for spy arguments - #906
Merged
Conversation
`assert_have_been_called_with` compares one call — the last, or the one at the optional index — so a test that means "this side effect happened" breaks as soon as an unrelated later call is added, and the failure text points at neither the cause nor the fix. Add `assert_have_been_called_with_any <spy> <expected>`, which scans every recorded call, and name the compared call in the last-call failures (`compared 'the last of 2 calls'`) so the existing assertion stops reading like the call never happened. Both last-call assertions now find their line with a single pure-bash pass over the params file, which yields the total the message needs and drops the `tail` and `sed` forks they used to pay on every assertion. Closes #897
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤔 Background
Related #897
assert_have_been_called_withonly compares one call, so a test that means "this side effect happened" fails as soon as an unrelated call is added after it — and the failure reads as if the call never happened at all.💡 Changes
assert_have_been_called_with_any <spy> <expected>, which passes when any recorded call matches. Last-call and indexed behaviour is unchanged.compared 'the last of 2 calls').tail/sedforks.