我有一个项目使用 wisper https://github.com/krisleech/wisper来提供发布者和订阅者功能。
gem 在开发和生产模式下完美运行。但是,当我尝试为它们添加一些测试时(rake test:integration),新添加的测试拒绝工作。测试模式下的发布者(可能也是监听者)不再工作了。
Core::Request.subscribe(Listener::Studentlistener, async: true)
Core::Request.subscribe(Listener::Tutorlistener, async: true)
我使用 sidekiq 作为异步后端,我使用 wisper-sidekiq gem 来处理异步请求,不确定这是否会是问题?,puma 作为服务器, MRI ruby 2.0.0
我是否必须设置一些东西才能运行测试?
it "Student can get latest status after looking for xxx tutor" do
post api_v1_students_request_look_for_xxx_tutor_path,
{ subject: 'nothing' },
{ "AUTHORIZATION" => "xxx"}
expect(response).to be_success
get api_v1_students_status_path, nil,
{ "AUTHORIZATION" => "xxx"}
expect(response).to be_success
json_response = JSON.parse(response.body)
expect(json_response['state']).to eq('matching')
end
侦听器应接收这两个帖子之间的发布并将状态更新为“匹配”。但是,现在当我运行 rspec 时,测试失败了,因为发布者从不发布任何内容,因此状态没有正确更新。