使用RSpec测试suckrpunch::Job
我已经定义了以下SuckerPunch作业:使用RSpec测试suckrpunch::Job,rspec,sucker-punch,Rspec,Sucker Punch,我已经定义了以下SuckerPunch作业: class MyWorker include SuckerPunch::Job def perform(account) @account = account end def params @account end end 我想用RSpec测试它: describe MyWorker do before { subject.perform("test@mail.nl") } its(:params)
class MyWorker
include SuckerPunch::Job
def perform(account)
@account = account
end
def params
@account
end
end
我想用RSpec测试它:
describe MyWorker do
before { subject.perform("test@mail.nl") }
its(:params) { should eq "test@mail.nl" }
end
在测试时,如果不使用include stuckerpunch::Job
,这项功能可以正常工作。可能是因为主题引用的是ActorProxy
的实例,而不是MyWorker
我应该如何测试MyWorker?或者我应该如何访问MyWorker
的实例?我已经阅读了赛璐珞维基中描述的,但是#wrapped_object
方法已经不存在了。如果你看一下,你会看到MyWorker。new
确实被重新定义为返回MyWorker
类的实例以外的其他内容。它实际上是一个赛璐珞::PoolManager
无论如何,如果要访问MyWorker
中定义的params
实例方法,可以分配该类的一个实例,如下所示:
describe MyWorker do
subject { MyWorker.allocate }
before { subject.perform("test@mail.nl") }
its(:params) { should eq "test@mail.nl" }
end
分配
是类的一个实例方法
类似于新建
,但不需要调用初始化
非常感谢!另外,job.rb
的链接也很有启发性。