allending/Kiwi — pull request #486 by chrisdevereux (2014-03-23 01:41:48+00:00)
Title: shouldNot receive: passes when the message is received

`[[object should] receive:selector]` is equivalent to `[[object should] receive:selector withCount:1]`

However, this means that `[[object shouldNot] receive:selector]` is equivalent to `[[object shouldNot] receive:selector withCount:1]`

This means that the matcher tests for the opposite of what it says it tests.

There seem to be 3 options for fixing this:
1. Redefine `[[object should] receive:selector]` to do `[[object should] receive:selector withCountAtLeast:1]`. Arguably, this is closer to what "should receive" means normally, but it's a breaking change.
2. Make the matcher behave differently depending on whether it's a should or shouldNot.
3. Deprecate receive: and replace it with receiveOnce: or something that makes things more explicit.

My preference would be for 1, but I thought I'd check what people think before starting anything.