整合測試
ASP.Net Core Web API、EF Core、SQLLite整合測試
- 17
- 整合測試
整合測試
甚麼是 ODBC,維基百科這樣說
"ODBC(Open Database Connectivity,開放資料庫互連)提供了一種標準的 API( 應用程式編程介面)方法來訪問資料庫管理系統(DBMS)。ODBC 的運用形態通常是由應用程式經過一個稱之為 ODBC 管理器的工具,建立一個 DSN,指明需要呼叫的 ODBC 驅動程式,從而訪問對應的資料庫。"
簡單來說,可以透過 ODBC 來簡化連線字串的管理,最近工作上,需要用到它,趕緊趁無風無雨的颱風天,重新學習一下。
.NET Core 原生的組態設定是使用 appsettings.json 來讀取組態設定,要先產生出各個環境的組態設定 appsettings.Development.json、appsettings.Staging.json、appsettings.Production.json,再透過環境變數+Build,取代掉原本的值,要佈署的環境越多檔案就越多,每次的改動設定都要很小心,生怕一個不注意就弄壞了,我想要讓組態管理的行為變簡單一些…
前面分享的兩篇文章,分別介紹了 Microsoft.Bcl.TimeProvider 和 AutoFixture 的 AutoData
另外在寫測試時,可以使用 FakeTimeProvider 去做抽換,就可以設定時區、時間來完成測試情境的執行。
那麼是不是也可以用 AutoData 的特性,讓我們在寫測試的時候可以省下建立 FakeTimeProvider 的步驟呢?當然可以,不過需要先瞭解該怎麼做、可以怎麼做以及應該如何做。
整合測試
系統開發難免會有一些背景批次定時的作業, 過去在 windows 平台可能開發 winform 或 console 程式由 windows 排程執行, 也可能自行開發程式內含 Timer 不斷的執行, 也曾見過有人將排程程式寫在網站程式中, 一樣利用 Timer 來執行, 省下另外建置的設備, 工程們總會找到自己的出路。 今天要分享的是 Quartz.Net 套件, 原本是 Java 下開源的框架, 1.0 版本早在 2002年9月發佈, 後來被移植到 .Net , 在 .Net 版本目前是 3.x 版, 適用於 .Net Framework 和 .Net Core, 這真的是很強大的排程作業軟體, 不過本身沒有提供什麼介面﹐所以需要自行開發。 網路上已有很多人發表了做法, 如今自己來做一套適合自己使用的介面﹐同時也分享給大家參考。
經過好友 張少齊 的推薦得知了這一套 Mock Server,趁著無風無雨的颱風假把玩一下這一套工具,跟著官方文件一路啃到底。
在windows系統下打開Docker Desktop,要將.NET Core Web API含多重專案之解決方案佈署上Docker Image,必須要注意資料夾路徑等等
整合測試
這是一篇借花獻佛、拾人牙慧的文章,之前有寫過這麼一篇文章「單元測試使用 AutoFixture.AutoNSubstitute」
當時是使用了 AutoFixture.AutoNSubsititute 來減少測試類別裡相依類別的 Stub 建立步驟,用了很奇怪的方式來解決我當時的煩惱。
直到我進入到另一個團隊後,才知道可以藉由 AutoFixture.AutoData 做到更為簡單與彈性的解決方式,這篇就來簡單介紹怎麼做。
箕輪城位在東京西北邊,高崎市箕郷町中的一座平山城
目前僅有2016年修復的木造角馬出西虎口門外,並沒有留下其他任何的建築物
而城下町也保留了過去的氛圍,只可惜店家數量略少,整體環境幽靜。避開雨季前往即可
從本篇文章開始,百大名城攻略也加入了影片以及字幕解說,不想看文章想看影片的人,可以從這裡看看攻略箕輪城的影片
日本百大名城No.16,適合散步踏青的箕輪城,一個人的旅行
我想很多人看到標題後都會直接想
「程式裡直接用 DateTime 難道錯了嗎?」
「DateTime 用得好好的,為什麼要改用 Microsoft.Bcl.TimeProvider ?」
「我又不必寫測試,我就是要用 DateTime!」
我也管不著各位想怎麼用、想怎麼寫程式,只是看到很多有關於交易處理的程式都是跟時間判斷有關,而且有著種種原因而沒有寫測試,就讓人覺得那些產品妥當嗎?
而且一遇到 DateTime 的處理,就會卡在不知道如何寫測試。
所以就來寫這一篇簡單介紹 Microsoft.Bcl.TimeProvider
以往為了要測試 Oracle , 要弄 VM 來安裝 Linux , 然後再來使用相關指令安裝 Oracle , 現在利用 Docker 技術可以讓整個程序方便多了。
ASP.NET Core
如提
在.NET Core Web API專案裡,用相依性注入,如何將IConfiguration填入NUnit單元測試專案裡?
改用 JetBrains Writerside 紀錄 https://jakeuj.com/
Docker
JSON,採用新版System .Text. Json命名空間
解說資料庫連結 (.NET Framework 4.x 與.NET Core 6.0~8.0 新舊版本的差異)
.NET 6.0起的最小API(Minimal API)
亞太技術年會 ( DevDays Asia 2024 ) 微軟專家針對 T-SQL 未來將支援 Regular Expressions 的測試與練習
在工作群組的環境下,如何設定檔案共用見證,讓叢集的仲裁可以正常運作
某一天我的同事提醒我說新版的 Rider,SpecFlow for Rider 上不能使用了,於是我暫緩更新了一段時間,現在已經有 Reqnroll 方案。這裡有 Reqnroll 誕生原因,From SpecFlow to Reqnroll: Why and How • Reqnroll,總結內容就是 SpecFlow 已經很長一段時間沒有更新,所以作者決定 Fork SoecFlow 專案,名為 Reqnroll,現在我要來體驗 Reqnroll 跟過往的 SpecFlow 有沒有甚麼不一樣