[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

rspec2 -> rspec3 conversion question



Hi team.

I'm using transpec to convert rspec syntax to rspec3, but it seems
that it's not enough. I need help to properly convert such pieces:

== rspec 2.14 syntax ==
describe Ridley::ClientResource do
  subject { described_class.new(double('registry')) }

  describe "#regenerate_key" do
    let(:client_id) { "rspec-client" }
    before { subject.stub(find: nil) }

    context "when a client with the given ID does not exist" do
      before { subject.should_receive(:find).with(client_id).and_return(nil) }

      it "raises a ResourceNotFound error" do
        expect {
          subject.regenerate_key(client_id)
        }.to raise_error(Ridley::Errors::ResourceNotFound)
      end
    end
  end
end

== after transpec ==
describe Ridley::ClientResource do
  subject { described_class.new(double('registry')) }

  describe "#regenerate_key" do
    let(:client_id) { "rspec-client" }
    before { allow(subject).to receive_messages(find: nil) }

    context "when a client with the given ID does not exist" do
      before { expect(subject).to
receive(:find).with(client_id).and_return(nil) }

      it "raises a ResourceNotFound error" do
        expect {
          subject.regenerate_key(client_id)
        }.to raise_error(Ridley::Errors::ResourceNotFound)
      end
    end
  end
end
====

The problem that code in before {} does not work, and ...Mock... error
raised instead of expected one.

How such code should look to work with rspec3?


Reply to: