相关疑难解决方法(0)

Rspec测试delayed_job

我的应用程序中有一些复杂的,长时间运行的delayed_job进程.我正在使用Rspec来测试流程中使用的各个方法和类,但我还想执行许多具有不同测试数据的端到端后台作业.

我在delayed_job wiki上找不到任何关于此问题的内容,这个问题看起来很有意思但我并不真正理解这里发生了什么. 使用rSpec测试delayed_job链的最佳方法是什么?

我可以使用工厂轻松设置测试数据,然后调用启动后台处理的类.我希望测试需要很长时间才能完成.

编辑后台代码

class Singleplex
    def perform(batch_id,user)   
      batch = start_batch(batch_id,user)
        ... do lots of stuff ...
    end
    handle_asynchronously :perform, queue: :singleplex, :run_at => Proc.new { 1.second.from_now }
Run Code Online (Sandbox Code Playgroud)

规格/工厂/ batches.rb

FactoryGirl.define do
  factory :batch do
    batch_type 'singleplex'
    name 'valid panel'
    status 'ready'
  end

  factory :batch_detail do
    chrom 7
    chrom_start 140435012
    chrom_end 140435012
    target_offset 150
    padding 4
    primer3_parameter_id 1
    snp_mask 't'
    status 'ready'
    batch
  end
end
Run Code Online (Sandbox Code Playgroud)

然后像这样运行测试

describe Batch do  
  it 'runs Singleplex for a valid panel' do
    batch …
Run Code Online (Sandbox Code Playgroud)

rspec delayed-job

25
推荐指数
2
解决办法
2万
查看次数

用Rspec连接链式方法

我想调用一个只返回一条记录的named_scope,但是named_scope返回一个数组,这不是什么大问题,因为我可以用.first链接它.

Model.named_scope(param).first
Run Code Online (Sandbox Code Playgroud)

这是有效的,我正在努力的是如何存根链接的电话.有没有人有关于如何用Rspec嘲笑实现这个目标的参考或答案?

ruby tdd bdd rspec ruby-on-rails

11
推荐指数
1
解决办法
8553
查看次数

标签 统计

rspec ×2

bdd ×1

delayed-job ×1

ruby ×1

ruby-on-rails ×1

tdd ×1