我有一个简单的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
如何最好地测试此代码?用水豚写下一些集成规格,或者还有其他方法吗?
答案 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"