一次測試即學習的案例

一般工程人員都知道 TDD 的使用方式,也明白 UnitTest 對於程式碼品質有著良好的保護

但比較少去探討的另一個好處應該是「學習」這件事了

雖然一般來說我們寫 Testing 其實是針對已知的事物(Business logic)去做測試與保護

比較少做未知的探索測試,但在一般有寫 Testing 情況下,還是有機會學習的 (所以還是鼓勵大家多多寫測試 )

以下我分享一個測試即學習的案例給各位小夥伴

這個案例其實很簡單,我寫了一個 UnitTest 想要測試 EPPlus 在讀取完我建立的 Excel 範本後

可以正確的判斷某個 Cell 是否有正確設置 Dropdownlist。

Excel 範例大致是長這樣

來看看 EPPlus 是如何將 Dropdownlist 加入到 Cell 裡

有興趣的同鞋可以參考 : https://github.com/JanKallman/EPPlus/wiki/Data-validation

接下來第一步是先寫下「預期的測試」

從官方的範例來看,在這裡我直覺的認為設置的公式應該在 Cell 裡,為什麼?

原因是我在這裡想要驗證的僅僅是 A2 Cell 是否有符合預期的設置

看起來跟預期的不一樣,也可以看到該欄位的  Formula 是空的

接下來看看是不是在 Cell 的 DataValidation 裡

可以看到 DataValidation 裡並沒有相關的屬性可以使用

最後可以看到,其實加入後的 DataValidation 是放在 sheet 的DataValidations屬性中

可以很清楚的看到我們先前設置的公式就在這裡面

從這一步一步當中,相信各位應該有發現到,從一開始的猜想試錯當中,我們發現也學習到了 EPPlus 在設置完 Cell 的 DataValidation 後,其實在原本的 Cell 上是不存在任何資訊可以去驗證我們是否成功的,最後才學到原來相關資訊是存在 Sheet 的 DataValidations 裡頭

以上,就是一個簡單的測試即學習案例。不曉得大家有沒有類似的體驗呢?

註:後來在寫這篇範例時發現到,如果我手動在 Excel 上設置 DataValidation 而不是透過 EPPlus 套件設置的話,在程式裡是完全找不到的。在取得 DataValidations 時也都會報錯,看起來又學到一個新的知識了呢

原文地址:https://www.cnblogs.com/KingJaja/p/8972240.html

时间: 2024-10-28 11:01:29

一次測試即學習的案例的相关文章

[RL學習篇][#2] 簡單的grid_mdp測試程式

下方是用來簡單的測試 grid_mdp.py的程式,執行後會用隨機動作去跑動作. 1 import gym 2 import tensorflow 3 import random 4 from gym import wrappers 5 6 env = gym.make('GridWorld-v0') 7 8 env = wrappers.Monitor(env, './outputs/grid_mdp-experiment-', force=True) 9 10 for episode in

學習筆記:Linux常見題目解析分享

學習題目分享解答 --此篇博客感謝老男孩老師教學,才得以學習完成此篇博客-- 描述linux系統的啟動過程?     (企業面試題) (1)簡單描述(口頭) 1.開機BIOS自檢    --->檢查硬件是否正常   自檢完後 根據啟動順序,教給下一個設備處理 2.MBR引導    ---->(硬盤) 硬盤0柱面0磁道1扇區的前446byte      (1扇區 512字節)   剩下的(512-446 =66)    其中64用來分區表(4個--->意思是4個主分區或4個擴展分區)  最

老男孩老師課程學習筆記----linux目錄特點

linux 目錄的特點 1./根是所有目錄的頂點 2.目錄結構像一顆倒掛的樹 3.目錄和磁盤分區默認是沒有關聯的 4./根下不同的目錄可能會對應不同的分區和磁盤 5.所有的目錄都是按照一定的類別有規律的組織和命名的 linux裡設備如果不掛載是看不到入口的,類似沒有窗戶沒門的監獄 如果希望設備被訪問,就必須給這個設備一個入口 這個入口就叫作掛載點,掛載點的表現實質是一個目錄 mount 光驅也是一種設備 ---> cdrom mount /dev/cdrom /mnt / 第一塊盤 系統程序 /

無心插柳的Linux學習者代言人——蔡德明

誰是「蔡德明」恐怕沒有多少人知道,不過提到「鳥哥」這個稱號,在臺灣的Linux社群幾乎是無人不知無人不曉,蔡德明正是鳥哥的本名.鳥哥究竟多有名? 如果你是有意學習Linux的初學者,卻不知如何下手,10個人當中有9個人會告訴你,先上「鳥哥的Linux私房菜」網站(http://linux.vbird.org) 瞧瞧,或是去書店買一本「鳥哥的Linux私房菜-基礎學習篇」來研讀,因為前者早已是臺灣最具人氣的Linux技術教學網站(從2002年至今,上站人 數已突破380萬人次),後者則是從2003

Postman - 測試 API 的好工具

POSTMAN in Google APP Store 因為工作的關係,常常寫一些 API 供 APP 使用.以前傻傻的,每次測試的時候都會自己刻一個 HTML 的表單,一個一個填入 input ,接著送出. 後來覺得這樣太慢了,就用 JavaScript 寫了一個程式來送, 可是效率都沒有很好,尤其是需要反覆測試更改條件的時候. 之後在同事的推薦下用了 Burpsuite ,而這套軟體確實是可以做到沒錯,但是讓人有一種「殺雞焉用牛刀」的感覺. 因此又陸續找了幾個模擬 HTTP requests

新一代組合創新架構師_學習地圖

新一代<組合創新>架構師  從初學到認證 學習地圖 第1步:自行(免費)學習線上課程,包括: 課程-1. (3.5小時)               需求碎片化时代,从编程到设计的心灵鸡汤(上集)                 需求碎片化时代,从编程到设计的心灵鸡汤(下集) 課程-2.  (4小時)                           需求碎片化时代_让碎片没钱就改版_改版就有钱 參考書籍: <思考软件,创新设计:A段架构师的思考技术> 作者:高煥堂 &

大二上學期學習生活總結

暑假的時候沒有回家,一直呆在學校學習.雖然沒能在外打工賺錢,不過卻學到了不少知識.對自己未來的付出.比賺生活費更有意義. 大一一年的學習之後,我對自身存在的不足有了進一步認識,也开始了新一波的奮鬥! [專業課] 這個學期幾乎全是專業課,包含C#.網頁設計. 操作系統.Linux.數據庫和計算機網絡. [計算機網絡]之前學過,後來期末考試的時候,感覺又忘得几乎相同了,雖然沒掛科,不過卻應該驚醒,閑了再翻翻看看. [C#]也是之前學過,在學期末的課程設計中使用SQLserver數據庫做了一個學生管理

Android 學習之旅!(2)

早幾天因爲學車,弄了幾天時間和精力過去,今天終於考過了(科目二,還是補考的...)嗯..不管這麼多了..今天又開始我的android 學習之旅!! 筆記: platform-tools目錄下的文件: adb.exe : android debug bridge(android調試橋) devices 列出所有連接設備 kill-server 殺掉 adb start-server 啓動 adb dx.bat : 打包生成dex文件 tools目錄下的文件: emulator.exe : 模擬器

學習 React.js:用 React.js 和 Flux 創建一個簡單的購物車

Creating A Simple Shopping Cart with React.js and Flux Ken Wheeler (@ken_wheeler) 簡介 歡迎來到學習 React 的第四章這也是最後一章!到現在,我們已經學習了怎樣利用 React 的 API 來創建狀態型組件,如何應用它們,以及如何運用臉書的 Flux 架構來工作的 今天我們將把所有的這一切放到一塊,來創建一個簡單的購物車應用.在現在的電商網站上,產品的詳細頁面相互依賴,而 React 有助於簡化並有效的組織它們