使用Jeff Wilcox 编写的单元测试框架
在对Windows Phone (或者Silverlight)应用做单元测试的时候,我建议使用Jeff Wilcox开发的一款单元测试框架。我强烈建议去看一下Jeff在MIX10 中对这一主题的一个介绍,链接在这里。框架的使用有一些局限性,比如你不能对AppBar的行为做单元测试,但是它依然是一个非常漂亮的框架。
你可以在Jeff Wilcox在博客中的底部下载到这个框架,或者从Cheat Sheet中获取到这个框架。
(以上翻译自Amit_Chatterjee的博客)
Amit_Chatterjee的博客中描述的很详细,这里只介绍一下框架最基本的应用。
这个框架确实有一些不足的地方,比如出现异常后会自动跑到Debugger.Break()里,然后程序退出,而不是出现异常后测试用例给出fail。
下载的框架包里包含两个dll(Microsoft.Silverlight.Testing.dll,Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll),获取到框架后就开始真正的工作了。
新建一个Windows Phone Application,然后将两个dll引用到项目中
在MainPage.xaml.cs代码如下
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
SystemTray.IsVisible = false;
var testPage = UnitTestSystem.CreateTestPage();
IMobileTestPage imobilePage = testPage as IMobileTestPage;
(Application.Current.RootVisual as PhoneApplicationFrame).Content = testPage;
}
}
这样就可以开始写单元测试了,下面是Amit_Chatterjee写的例子(主要是看语法,其实跟VisualStudio原生的测试用例写法一样)
写好单元测试后就可以执行了,直接在WindowsPhone Emulator里运行这个测试项目,便可以看到如下画面,这个画面会持续五秒
过后会出现单元测试用例列表,这里选择要测试的方法就可以进入具体的用例信息了
下面图就是在的用例下的测试方法
如果测试成功会出现类似如下提示