rex/mocks/should_syntax/spec/should_syntax_spec.rb

tests/_examples/rex/mocks/should_syntax/spec/should_syntax_spec.rb in the metorex repository.

class Printer
  def print_page(number) = "page #{number}"
end

describe "the should syntax for doubles" do
  it "sets an expectation with should_receive" do
    printer = Printer.new
    printer.should_receive(:print_page).with(1).and_return("stubbed")
    expect(printer.print_page(1)).to eq("stubbed")
  end

  it "stubs with stub" do
    printer = Printer.new
    printer.stub(:print_page).and_return("stub")
    expect(printer.print_page(2)).to eq("stub")
  end

  it "refuses with should_not_receive" do
    printer = Printer.new
    printer.should_not_receive(:print_page)
    printer.print_page(3)
  end

  it "reports an unmet should_receive" do
    printer = Printer.new
    printer.should_receive(:print_page)
  end
end