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 次 |
| 最近记录: |