對於系統可能發生例外的地方,一定都會採取必要措施,並且拋出美化後的訊息給用戶,如何
驗收我們要的「例外」,肯定是需要寫個測試來玩玩,這邊使用 NUnit 搭配 FluentAssertions
使用之前文章(例外錯誤攔截)來當作例外發生案例
MyService 類別
測試案例 exception_myCustException_by_myService
由上圖可知,使用 Action 變數來指定 target,並且驗證發生的例外為 MyCustExption
跑測試通過
若要進一步驗證回傳的訊息,可以如下操作,除了取得 MyCustException 之外,
使用 WithMessage方法,來驗收錯誤訊息是否符合期望
跑測試路燈
有時候錯誤訊息僅需要驗證是否有包含哪些字,可以使用「*」字元,而「*」代表這個位置有或
沒有其他字元,所以可以如下撰寫
跑測試綠燈
以上測試,另有一個寫法,使用 FluentActions的 Invoking() 方法,如下圖
若是非同步同樣適用,先在 MyService class 加入非同步方法
此時加入測試案例,如下圖
其中 act 使用 Func<Task> 來對接,並且後續使用 ThrowAsync 方法來判斷
參考
沒有留言:
張貼留言