假设我有一个抽象类,它有一个非抽象的实例方法供子进行继承:
# - abstract.cr
abstract class Abstract
def foo
2
end
end
Run Code Online (Sandbox Code Playgroud)
我该怎么写这个规格?
# - abstract_spec.cr
it "returns 2 from #foo" do
Abstract.instance.foo.should eq 2 #???
end
Run Code Online (Sandbox Code Playgroud)
可能有更好的方法(因此我发布问题,我很乐意从社区获得反馈),但我能想到的一种方法是让一个类继承测试中的父级.这样你就可以抽象地专注于类的"任何"实现.
# - abstract_spec.cr
class AbstractTest < Abstract
end
it "returns 2 from #foo" do
AbstractTest.new.foo.should eq 2
end
Run Code Online (Sandbox Code Playgroud)