zoukankan      html  css  js  c++  java
  • 一次測試即學習的案例

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

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

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

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

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

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

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

    Excel 範例大致是長這樣

    image

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

    image

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

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

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

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

    image

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

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

    image

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

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

    image

    image

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

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

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

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

  • 相关阅读:
    单元测试练习
    对软件的看法
    个人最终总结
    论文笔记--Fast RCNN
    个人最终总结2
    结对编程--基于android平台的黄金点游戏(2.0版本)
    结对编程--基于android平台的黄金点游戏
    团队作业(一)
    [java]wordcount程序
    第三周作业(二)
  • 原文地址:https://www.cnblogs.com/KingJaja/p/8972240.html
Copyright © 2011-2022 走看看