如何解决RSpec期望调用赛璐oid基类的重写方法
当使用RSpec测试继承另一个继承了Celluloid的另一个类B的类A时,我试图为调用类A中的方法设置期望,该方法将覆盖其对类B的实现。
这是示例代码:
require 'celluloid'
class B
include Celluloid
def method1
end
end
class A < B
def initialize
end
def method1
puts "Called!"
end
def method2
method1
end
end
context "test inherited" do
before(:each) do
@instance = A.new
end
it "should call metod1 on calling method2" do
expect(@instance).to receive(:method1)
@instance.method2
end
end
此测试会生成失败:
1) test inherited should call metod1 on calling method2
Failure/Error: expect(@instance).to receive(:method1)
(#<Celluloid::CellProxy(A:0x3fc733109b9c)>).method1(*(any args))
expected: 1 time with any arguments
received: 0 times with any arguments
# ./spec/api/sandbox.spec:13:in `block (2 levels) in <top (required)>'
我可以让Rspec来测试我们正在调用重写方法,然后让此测试通过吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。