有時測試會需要模擬系統環境參數,而Fake 是其中的選項之一,但其限制Visual Studio Ultimate版本才支援,其中還有一些眉角..
有個需求為 Pub 週五才開店,會有個方法 IsOpen 來判斷(如下),因為是判斷當下日子,測試的話無法一直改系統的時間,
故需要 Fake object 輔助。
建立單元測試專案,建立好後,在組件System(因DatetTime 在System 組件中)點選滑鼠右鍵,點選「新增Fake 組件」,
此時會跑一陣子,並生成 Fake 相關組件
開始撰寫測試程式,記得要using Microsoft.QualityTools.Testing.Fakes
並且使用 ShimsContext.Create() 來建立模擬區塊,並且指定 2020-7-3 日子會通過測試
以上是順利的部分
如文章開頭有提到的,實際會遭遇如下錯誤,需要將 .net framework 換成 4.8 編譯方可通過。
沒有留言:
張貼留言