Day17 - 汇出 excel-测试篇

前言

上篇题到如何制作产 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

小结

一开始不熟悉时,会做比较慢,蛮正常的,因为没做过所以也没头绪,多做几次後,就会逐渐上手,慢慢的就能变成先写完测试,再开始实作内容了~

参考资料

  1. factory_bot_rails GitHub

铁人赛文章连结:https://ithelp.ithome.com.tw/articles/10272496
medium 文章连结:https://link.medium.com/H7KaCZbhRjb
本文同步发布於 小菜的 Blog https://riverye.com/

备注:之後文章修改更新,以个人部落格为主


<<:  每个人都该学的30个Python技巧|技巧 30:档案操作(字幕、衬乐、练习)

>>:  从 JavaScript 角度学 Python(29) - BeautifulSoup

Day 30: 完赛总结

终於完赛啦! 这次挑战赛仅聚焦於结构化资料的资料分析,非结构化资料(图片声音影片等等),就需要用到深...

javascript网页座标(screen,page,client)

下面三种座标的(x,y)都是从左上角开始为(0,0) screen 根据整个萤幕的宽高 page 根...

Day 24 : 插件篇 03 — 如何让 Obsidian 自动推荐关联笔记 (上)?使用 Breadcrumbs 查看有哪些相关笔记可以连结

一、前言 这是 Obsidian 使用教学 — 插件篇的第 3 篇文章。 在 上一篇文章 中,我介绍...

D22 Django-bootstrap 网站美化工程 - fontawesomefree icon

为了Google的icon还有未来应该会需要加入一些icon所以安装个好用的python包 cons...

从 JavaScript 角度学 Python(19) - JSON

前言 前面我们了解基本的档案处理之後,接下来当然就是试着实作读取一些不同格式的档案,因此这一篇将会介...