2015年11月3日 星期二

編寫單元測試時的好用輔助套件 - Fluent Assertions

twMVC#12 由 91 哥所分享的「如何在實務上使用 TDD 來開發」開始,然後 91 哥在 SkillTree 講授「自動測試與 TDD 實務開發(使用C#)」四個梯次,從一開始對測試與開發的懵懵懂懂,到現在雖然還無法相當進階,但也已經在平常工作的開發裡導入單元測試,並且向部門同事分享,分享的內容是以 91 哥在課堂上的內容為基礎,再以公司團隊的現況去做調整,我無法像 91 哥那樣可以將測試、開發甚至到後續的規格實例化以及使用 BDD 等一連串內容講得鉅細靡遺,所以我就以我本身的專案導入現況以及每次推進的內容逐一分享給同事。

這一篇是介紹「Fluent Assertions」這個好用的測試輔助套件,原本早就規劃在部落格文章的寫作時程裡,但是這一年來除了上半年因為工作忙碌而影響了寫文進度,另一方面還是因為變得有點懶,所以文章產量比起以往銳減許多,就在「自動測試與 TDD 實務開發(使用C#)」第四梯次課程裡被 91 哥點名了好多次,因為在 Facebook 有時會對於目前使用了哪些工具、套件而寫些感想,所以讓 91 哥覺得我有寫些工具套件的介紹文,不過既然被 91 哥點名了,這也提醒我要趕快把這些文章給補一補。

 


2015年11月1日 星期日

NSubstitute 練習題 - 方法執行多次且回傳的值需要做改變

題目有點難定,這麼做個簡單的說明,在一個使用情境裡會使用到同個類別的同個方法多次,然後第一次執行的結果與後續幾次的執行結果會有所不同。例如在一個使用情境裡,方法裡會使用到一個物件 collection,然後會去使用另一個類別的方法做多次處理(比方說,刪除),執行第一次與後續幾次的執行就會有不同的回傳結果。

如果要對這個使用情境去做單元測試時,以上的那個執行多次的類別方法是需要被隔離,使用 NSubstitute 建立 stub 與預期回傳值,那麼應該怎麼處理呢?

 


提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。