單元測試對工程質量帶來的做用就不詳細說明了,本文只討論如何在WP開發環境下搭建測試工程 windows
歷史 async
從WP7時代官方是不支持UnitTest工程的,所以須要採用WPToolkitTest這個工程來實施單元測試, 函數
可參考Nokia Develop上的文章:地址 單元測試
這種方式來搭建的測試環境,測試時須要在模擬器或者真機上點擊開始測試按鈕進行測試,如此方式筆者認爲並不友好 學習
到了VS2012Update2發佈以後官方的單元測試終於加入了進來,而且能夠依靠VS的測試管理來更加方便的進行管理測試用例: 測試
搭建步驟 google
參考MSDN中的教程:地址 spa
這個教程已經很清晰的說明了如何建立一個Windows Phone Unit Test 工程,但教程中未說起的內容仍是有一些的,下面咱們來一一解決這個問題: code
一、Async/Await blog
來到了WP8時代,加入了await和async這兩個關鍵字,顯然這兩個關鍵字對於程序結構的改善是明顯的,所以在項目中咱們也會本身來封裝如此風格的接口,那麼若是測試代碼中存在此種風格的代碼該如何測試呢?
經過例子來看下:
咱們看上面這個接口,接口中的方法是經過token獲取用戶信息那麼咱們在測試的時候對應的測試代碼應該這樣來寫:
很關鍵的一個點就是要把測試函數加上async 和 Task修飾詞,這樣即可以正常的測試了
二、mock庫該怎麼辦
提到單元測試就會說道mock這個概念,這裏依然不詳細展開來講明why mock 以及how to mock,可本身去關鍵詞來搜索學習。
在筆者的使用過程當中發現,用nuget方式來添加mock庫時,大多數的主流mock庫都不支持Windows Phone:
好比上面的Moq 這個庫,這讓人很沮喪。。。
但有問題就天然有解決辦法,咱們不經過Nuget來添加,而是使用Silverlight版本的Moq,下載地址
下載後找到編譯好的Silverlight版本的dll添加到工程中:
注意這兩個都要添加進來,添加時會有警告,忽略了就能夠了,如此咱們的Moq庫就能夠正常使用了:
上面的兩個問題解決後Windows Phone下的測試環境搭建就完成了!
WP8交流羣:182659848