I''m trying this: firmware.should_receive(:execute).with("ATZ").once.ordered.and_return(AT_OK) firmware.should_receive(:execute).with("ATE0V1").once.ordered.and_return(AT_OK) firmware.should_receive(:execute).with("AT+CNUM").once.and_return(AT_OK) But rspec does not complain that "AT+CNUM" is never passed as argument. Bug? Or did I misinterpret the feature "once" ? NB: I''d love to be able to write firmware.should_receive("AT+CNUM") but that seems to fail on the way the method :"AT+CNUM" is being defined; which in turn seems something I can only change (quickly) for Ruby 1.9, namely blocks not accepting implicit blocks as parameter. Any chance of fixing that? Bye, Kero.