It seems like `failuare_message`, `failure_message_when_negated` could be DRYed up a bit, mostly thinking the conditional, how about wrapping the conditional into a method:

```Ruby
"... #{formatted_expectted} ... to #{formatted_stream}"

def formatted_expected
  "#{@expected.inspect} " unless @expected
end
```