上篇题到如何制作产 Excel 档,这篇以撰写测试为主
延续上篇完成的补写测试,这边还有额外安装 factory_bot_rails
Gem 使用,可参考此 pr
主要测试内容为: 工作列表名称 (worksheet)、Excel 标题列、内容,确认资料正确性
# spec/services/shops_excel/generator_spec.rb
require 'rails_helper'
RSpec.describe ShopsExcel::Generator do
subject { described_class.new.execute }
before do
@shop = create(:shop)
end
it 'generate rows correctly' do
xlsx = subject
first_sheet = xlsx.workbook.worksheets[0]
expect(first_sheet.name).to eq('商家清单')
expect(first_sheet.rows[0].cells.map(&:value)).to match_array(
%w[商家名称 信箱 备注]
)
expect(first_sheet.rows[1].cells.map(&:value)).to match_array(
[@shop.name, @shop.email, @shop.note]
)
end
end
一开始不熟悉时,会做比较慢,蛮正常的,因为没做过所以也没头绪,多做几次後,就会逐渐上手,慢慢的就能变成先写完测试,再开始实作内容了~
铁人赛文章连结:https://ithelp.ithome.com.tw/articles/10272496
medium 文章连结:https://link.medium.com/H7KaCZbhRjb
本文同步发布於 小菜的 Blog https://riverye.com/
备注:之後文章修改更新,以个人部落格为主
<<: 每个人都该学的30个Python技巧|技巧 30:档案操作(字幕、衬乐、练习)
>>: 从 JavaScript 角度学 Python(29) - BeautifulSoup
终於完赛啦! 这次挑战赛仅聚焦於结构化资料的资料分析,非结构化资料(图片声音影片等等),就需要用到深...
下面三种座标的(x,y)都是从左上角开始为(0,0) screen 根据整个萤幕的宽高 page 根...
一、前言 这是 Obsidian 使用教学 — 插件篇的第 3 篇文章。 在 上一篇文章 中,我介绍...
为了Google的icon还有未来应该会需要加入一些icon所以安装个好用的python包 cons...
前言 前面我们了解基本的档案处理之後,接下来当然就是试着实作读取一些不同格式的档案,因此这一篇将会介...