测试activeadmin类的最佳方法是什么?

时间:2015-04-01 13:00:04

标签: ruby-on-rails ruby rspec activeadmin

我有一个简单的activeadmin类,如下所示:

ActiveAdmin.register Post do
  actions :index

  index do
    index_columns
  end

  csv do
    index_columns
  end

  def index_columns
    column "Id" do |sp|
      sp.id
    end
  end
end

如何最好地测试此代码?用水豚写下一些集成规格,或者还有其他方法吗?

2 个答案:

答案 0 :(得分:1)

测试gem的功能背后的一般想法 - 你不测试它

宝石(通常)已经过测试。

答案 1 :(得分:0)

我同意安德烈,但需要这样做才能工作。以下是我测试csv部分的方法。

  @csv_doc = StringIO.new      

  allow_any_instance_of(ActiveAdmin::ResourceController).to receive(:stream_resource) do |aa_controller|
    receiver = []
    # it's ok to mock this because it's literally their code: https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/resource_controller/streaming.rb#L38
    aa_controller.class.active_admin_config.csv_builder.build(aa_controller, receiver)
    receiver.each do |fees_as_csv|
      @csv_doc << fees_as_csv
    end
  end


  @csv_doc.rewind
  csv_string = @csv_doc.readlines.join
  csv = CSV.parse(csv_string, headers: true).map(&:to_hash)

  expect(csv[0]["FIGURING THIS OUT"]).to eq "SUCKED"