如何在 Crystal 中的抽象 class 上指定实例方法?
How do I spec instance methods on an abstract class in Crystal?
假设我有一个抽象 class,它有一个 non-abstract 实例方法供 children 继承:
# - abstract.cr
abstract class Abstract
def foo
2
end
end
如何为此编写规范?
# - abstract_spec.cr
it "returns 2 from #foo" do
Abstract.instance.foo.should eq 2 #???
end
可能有更好的方法(因此我发布了这个问题,我很乐意从社区获得反馈),但我能想到的一种方法是 class在测试中继承自父级。这样你就抽象地关注 class 的 "any" 实现。
# - abstract_spec.cr
class AbstractTest < Abstract
end
it "returns 2 from #foo" do
AbstractTest.new.foo.should eq 2
end
假设我有一个抽象 class,它有一个 non-abstract 实例方法供 children 继承:
# - abstract.cr
abstract class Abstract
def foo
2
end
end
如何为此编写规范?
# - abstract_spec.cr
it "returns 2 from #foo" do
Abstract.instance.foo.should eq 2 #???
end
可能有更好的方法(因此我发布了这个问题,我很乐意从社区获得反馈),但我能想到的一种方法是 class在测试中继承自父级。这样你就抽象地关注 class 的 "any" 实现。
# - abstract_spec.cr
class AbstractTest < Abstract
end
it "returns 2 from #foo" do
AbstractTest.new.foo.should eq 2
end