在Silvelight 4.0的项目中我们也需要制作单元测试以保证项目的质量,本节将讲诉如何创建一个项目进行单元测试。
一、创建一个名为SL4UnitAPP的Silverlight 应用程序,不需要Web承载网站。
二、然后鼠标右键点击SL4UnitAPP解决方案,添加一个名为SL4UnitTest的Silverlight Unit Test Application。
三、在平时VS2010 创建项目时无法添加一个Silverlight Unit Test Application,所以我们需要将C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\下的ItemTemplates文件夹和ProjectTemplates文件夹都拷贝到D:\My Documents\Visual Studio 2010\Templates目录下的ItemTemplates文件夹和ProjectTemplates文件夹。
四、此时我们可以在VS2010创建一个Silverlight Unit Test Application应用程序如下图所示:
五、在SL4UnitTest应用程序中添加引用SL4UnitApp项目。如下图所示:
七、在SL4UnitApp项目的MainPage.xaml.cs中添加两个需要验证的函数和一个公共变量如下代码所示:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Animation;
- using System.Windows.Shapes;
- namespace SL4UnitAPP
- {
- public partial class MainPage : UserControl
- {
- public MainPage()
- {
- InitializeComponent();
- }
- /// <summary>
- /// 返回一个字符mainPage
- /// </summary>
- /// <returns></returns>
- public string ReturnString()
- {
- return "mainPage";
- }
- public string GetStringFromMethod;
- /// <summary>
- /// 设置公共变量值为Secmethod
- /// </summary>
- public void GetString()
- {
- GetStringFromMethod = "Secmethod";
- }
- }
- }
八、在SL4UnitTest项目中我们对MainPage类进行实例化,然后我们添加两个特性为[TestMethod]的变量以供测试是否通过单元测 试(注意:如果因为断言错误,而进入调试模式,可以按F5继续运行,以看单元测试结果),代码如下:
- using System;
- using System.Net;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Documents;
- using System.Windows.Ink;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Animation;
- using System.Windows.Shapes;
- using Microsoft.Silverlight.Testing;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- using SL4UnitAPP;
- namespace SL4UnitTest
- {
- [TestClass]
- public class Tests
- {
- MainPage mpage = new MainPage();
- [TestMethod]
- public void TestMethod1()
- {
- //断言mpage.ReturnString()获得的结果是mainPage
- Assert.AreEqual(mpage.ReturnString(), "mainPage");
- }
- [TestMethod]
- public void TestMethod2()
- {
- //先运行mpage.GetString()函数,然后断言GetStringFromMethod值为Secmethod
- mpage.GetString();
- Assert.AreEqual(mpage.GetStringFromMethod, "Secmethod1");
- }
- }
- }
九、本实例中第一个方法是正确的断言,第二个方法很明显是错误的断言,所以按下F5看到的结果如下面两张图所示:
本实例采用VS2010+Silverlight 4.0编写,如需源码请点击 SL4UnitAPP.zip 下载。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。