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
1 changed files with 21 additions and 2 deletions

View File

@ -1,11 +1,30 @@
require "../../../spec_helper"
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) }
specify do
it "overrides default stubs" do
allow(dbl).to receive(:foo).and_return(123)
expect(dbl.foo).to eq(123)
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