微軟在08年的時候推出了一個Silverlight的單元測試框架,該框架在Mix 08的時候與Silverlight controls同時推出的,微軟工程師Jeff Wilcox一直參與維護該單元測試框架。
Scott Gu對這個框架的介紹
Jeff Wilcox提供的視頻介紹
該框架的源代碼已經包括在Silverlight controls中,有興趣的可以參考,在該框架的msdn代碼主頁, 可以找到最新的二進制文件和相關教程及鏈接。
下面簡單說明如何使用這個單元測試框架。
首先我們要從這里下載最新的單于測試框架的dll。
然后我們打開vs2008創建一個silverlight application,用于運行單元測試,我們把這個工程命名為UnitTest。
把下載的框架dll解壓到項目工程目錄里(我新建了一個ref目錄),然后右鍵點擊References添加剛才解壓的2個dll,Microsoft.Silverlight.Testing.dll和Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll。
因為框架可以生成測試頁面,所以我們把項目里的page.xaml和page.xaml.cs刪除,然后打開app.xaml.cs,在頁面里添加對Microsoft.Silverlight.Testing的引用,并且把RootVisual修改為UnitTestSystem.CreateTestPage();
- #using?Microsoft.Silverlight.Testing;??
#using Microsoft.Silverlight.Testing;
- private?void?Application_Startup(object?sender,?StartupEventArgs?e) ??
- ???????{ ??
- ??
- ???????????this.RootVisual?=?UnitTestSystem.CreateTestPage(); ??
- ???????}??
private void Application_Startup(object sender, StartupEventArgs e){this.RootVisual = UnitTestSystem.CreateTestPage();}
然后我們在工程里添加一個class,在class里引用Microsoft.VisualStudio.TestTools.UnitTesting,然后加入一個TestMethod,代碼如下:
- using?Microsoft.VisualStudio.TestTools.UnitTesting; ??
- ??
- namespace?UnitTest ??
- { ??
- ????[TestClass] ??
- ????public?class?TestGame ??
- ????{ ??
- ????????[TestMethod] ??
- ????????public?void?TestDispose() ??
- ????????{ ??
- ????????????Assert.IsTrue(true); ??
- ????????} ??
- ????} ??
- }??
using Microsoft.VisualStudio.TestTools.UnitTesting;namespace UnitTest {[TestClass]public class TestGame{[TestMethod]public void TestDispose(){Assert.IsTrue(true);}} }
按F5運行工程,看看輸出結果,是不是很方便?
當然你也可以用這個框架進行Silverlight UI的單元測試工作,具體可以看Jeff的這篇文章。
轉載請注明來自ET瓦力Silverlight技術中文博客