ruby-on-rails - CSV 下载类 Ruby 的单元测试(不是 Capybara)
问题描述
我需要为class UsersCsvGenerator
. 需要 Rspec 单元测试
我的课是:
class UsersCsvGenerator
def initialize(users, fields:)
@users = users
@fields = fields
end
def call
CSV.generate do |csv|
csv << @fields
@users.each do |user|
csv << user.attributes.values_at(*@fields)
end
end
end
def self.call(users, fields: User.column_names)
new(users, fields: fields).call
end
end
users_controller 是:
def index
@users = User.all
respond_to do |format|
format.html
format.csv do
send_data UsersCsvGenerator.call(@users,
fields: %w[email first_name
last_name country
last_sign_in_at
current_sign_in_ip
last_sign_in_ip])
end
我认为是这样的:
require 'rails_helper'
RSpec.describe UsersCsvGenerator do
let(:users) { UsersCsvGenerator.new}
context 'Test' do
it do
expect(users("")).to eq ()
end
end
end
但这一切都错了!
解决方案
推荐阅读
- java - 结合 TextViews + Image 制作完整的图像/文件
- c++ - 静态转换允许转换对象指针但不允许转换整数
- git - Git - 合并多个发布分支的工作流程
- c# - 为什么 IsGenericTypeDefinition 返回 false?
- javascript - Bootstrap-Multiselect 上的 jQuery 动画效果
- firebase - 用户或应用程序的 Firebase Rest Api 设置语言?
- php - 通过 curl 从外部网站向动作控制器发送数据时设置会话
- jackson - 多个 POJO 的 Json Java 数据绑定
- sql - Oracle 到 T-SQL CTE 转换错误
- vba - 将不同 Excel 中的数据复制到同一个文件夹中