這邊記錄一下書中介紹的其他可能會用到的框架功能。
[Ignore]語法
如上圖,作者說通常不會用到,我想也是,
通常還沒開發完的程式碼,大概都是用註解去處理居多吧?
但使用這個有個好處,至少可以提醒自己有一段code還沒被完成,以及留下未完成原因,
讓後面接手的人看測試總管就知道應該是什麼問題,
而不像註解掉的程式碼,放久了就忘了。
流利語法我就先跳過了,
儘管很方便使用,但我認為閱讀性是最該被考慮的,
畢竟下一次看這段code的人很可能就是一兩個月後的自己,
如果還需要花時間理解才能知道這段code的意義,
那不如不要節省那麼一點點開發code的時間,
多花點心思把正確的function名稱用上就好了。
[Category]語法
這個語法可以用來分類不同類型的測試,
例如需要花比較多時間執行或比較短時間的測試,
用此來分開不同類型的測試,
但是我是直接在Visual Studio執行,似乎沒辦法指定分類完的測試去執行,
目前沒這個需求,所以也沒去驗證。
看來只能透過NUnit的UI測試器才能了。
驗證回傳值以外的數值
前面驗證的都是return回來的值,
但程式中往往沒有那麼單純,有可能是沒有回傳值,但會改變某些參數,
又或者改變的值有好幾個,那麼就需要驗證這些非回傳值的數值了。
照著書中舉例:
當IsValidLogFileName()被執行時,WasLastFileNameValid會被設定成false,
如果IsValidLogFileName()順利執行到最後,則WasLastFileNameValid會被設定成true,
這樣這個被測試物件就能夠記憶上一次的執行結果。
那麼測試時如何側這個值呢?
其實也沒多困難...
就真的只是把該屬性(WasLastFileNameValid)呼叫出來比較而已。
使用工廠方法來初始化被測物件
可以發現上面的例子都是以MakeAnalyzer()去建立物件,
這麼做的好處是,如果被測物件要進行改變,
可能是增加了建構參數甚至是更改類別,就不用每個TestMethod都去更改,
只需要更改MakeAnalyzer()內的new即可,
同時可以保證每個待測物件的建立過程都會是相同的,
提高了可維護姓。
沒有留言:
張貼留言