Better stub DSL tests

This commit is contained in:
Michael Miller 2022-04-02 12:07:30 -06:00
parent 519836147e
commit f1ce914b73
No known key found for this signature in database
GPG key ID: 32B47AE8F388A1FF

View file

@ -1,11 +1,30 @@
require "../../../spec_helper" require "../../../spec_helper"
Spectator.describe "Stub DSL" do Spectator.describe "Stub DSL" do
double(:foobar, foo: 42, bar: "baz") double(:foobar, foo: 42, bar: "baz") do
stub abstract def other : String
stub abstract def null : Nil
end
let(dbl) { double(:foobar) } let(dbl) { double(:foobar) }
specify do it "overrides default stubs" do
allow(dbl).to receive(:foo).and_return(123) allow(dbl).to receive(:foo).and_return(123)
expect(dbl.foo).to eq(123) expect(dbl.foo).to eq(123)
end end
it "overrides abstract stubs" do
allow(dbl).to receive(:other).and_return("test")
expect(dbl.other).to eq("test")
end
it "returns nil by default" do
allow(dbl).to receive(:null)
expect(dbl.null).to be_nil
end
it "raises on cast errors" do
allow(dbl).to receive(:foo).and_return(:xyz)
expect { dbl.foo }.to raise_error(TypeCastError, /Int32/)
end
end end