Joh*_*alo 20 ruby rspec rspec2
我通过创建一个扩展到库类的子类来扩展现有的库.
在子类中,我能够在initialize
方法中测试大多数功能,但无法模拟super
调用.子类看起来像下面的东西.
class Child < SomeLibrary
def initialize(arg)
validate_arg(arg)
do_something
super(arg)
end
def validate_arg(arg)
# do the validation
end
def do_something
@setup = true
end
end
Run Code Online (Sandbox Code Playgroud)
我如何编写rspec测试(使用mocha)以便我可以模拟super
调用?请注意,我正在测试类中initialize
方法的功能Child
.我是否必须创建单独的代码路径,super
在提供额外参数时不会调用?
Myr*_*ton 19
你不能嘲笑super
,你不应该.当你模拟某些东西时,你正在验证是否收到了一条特定的消息,而super
不是一条消息 - 它是一个关键字.
相反,要弄清楚如果super
缺少调用,这个类的行为会发生什么变化,并编写一个练习并验证该行为的示例.
归档时间: |
|
查看次数: |
7168 次 |
最近记录: |