小编Nth*_*oss的帖子

将参数传递给rspec共享示例

我有一个进程返回一个结果集,我想使用rspec测试其有效性.该过程将根据参数返回不同的结果,但有许多示例对所有这些都是通用的,因此我想创建一组可以针对所有这些示例运行的常见示例.

我知道首选的做法是使用let来构建结果.问题是每个过程需要一两分钟来生成结果,我可能有30个例子.与所有基于不同的参数排列的我运行约500 examples.If我不得不重建的结果为每比如,试验将运行超过一天.

所以相反,我在before(:all)块中构建一个结果,并将它分配给这样的属性:

RSpec.describe 'Test Description' do
  attr_reader :result

  before(:all)
    @result = build_result({some_parameters})
  end

  context 'Some context' do
    it 'Looks lik a result' do 
      expect(result.something).to ...
    end

    it 'Feels lik a result' do 
      expect(result.something).to ...
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

也许有比使用属性更好的方法.我想做这样的事情:

RSpec.describe 'Test Description' do
  attr_reader :result

  before(:all)
    @result = build_result({some_parameters})
  end

  context 'Some context' do
    it_behaves_like "A result" result
  end
end
Run Code Online (Sandbox Code Playgroud)

在此上下文中使用属性失败.有没有不同的方法来做到这一点?

ruby rspec parameter-passing

15
推荐指数
2
解决办法
7424
查看次数

标签 统计

parameter-passing ×1

rspec ×1

ruby ×1