Suggested alternative:

``` ruby
instance = klass.new

expect { |b|
  klass.any_instance.should_receive(:bees).with(:sup, &b)
  instance.bees(:sup)
}.to yield_with_args(instance, :sup)
```

Reasons I like this better:

* If there was a bug that caused the implementation block to not be called in this case, the spec would silently fail (since the expectation you've set wouldn't even run in that case).
* It matters that the other args are included after the instance, so this specs that as well.
* It uses a handy matcher from rspec-expectations :).