Silverlight实用窍门系列:44.Silverlight 4.0中进行单元测试 【附带源码实例】

在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 下载。

时间: 2024-11-02 01:10:58

Silverlight实用窍门系列:44.Silverlight 4.0中进行单元测试 【附带源码实例】的相关文章

Silverlight实用窍门系列:43.Silverlight从ListBox拖拽图标到另一ListBox【附带源码实例】

在本实例中我们将从ListBox中拖出一个图标到另外一个ListBox中,这是一个比较有用的小功能,在这里我们首先来看运行效果(点击下面的图片即可拖动左边的图标到右边的ListBox中去). 在线演示 实现过程是:1.我们把这个过程分为鼠标左键点击到左边的图标,使用Image_MouseLeftButtonDown事件.(设置一个标识符,标示当前已经被鼠标点击下去) 2.点击到这个图标不放,在整个Canvas内移动,使用LayoutRoot_MouseMove事件(此时设置一个图标跟随鼠标的位置

Hhadoop-2.7.0中HDFS写文件源码分析(二):客户端实现(1)

一.综述       HDFS写文件是整个Hadoop中最为复杂的流程之一,它涉及到HDFS中NameNode.DataNode.DFSClient等众多角色的分工与合作.       首先上一段代码,客户端是如何写文件的: Configuration conf = new Configuration(); FileSystem fs = FileSystem.get(conf); Path file = new Path("demo.txt"); FSDataOutputStream

Silverlight实用窍门系列:37.Silverlight和ASP.NET相互传参的两种常用方式(QueryString,Cookie)【附带实例源码】

在本节中将讲述Silverlight和ASP.NET页面的相互传参的两种常用方式:Cookie和QueryString.首先我们新建一个名为SLConnectASP.NET的Silverlight应用程序,然后在SLConnectASP.NET.web项目中添加一个Index.aspx的页面. 一.Silverlight和ASPX页面的QueryString传参 实现思路:在Silverlight端跳转到页面到Index.aspx并且传递一个QueryString参数ID,在该Index.asp

Silverlight实用窍门系列:39.Silverlight中使用Frame和Page控件制作导航【附带实例源码】

在Silverlight中有时需要进入不同的XAML页面,但是一般情况下是不能实现"前进"和"后退"的,在这里我们可以使用Frame+Page控件制作导航功能实现上一页和下一页的跳转功能. 在本文中我们制作一个实例如下:添加一个Frame控件,然后点击"加载UC"和"加载PageShow"按钮加载UC.xaml和PageShow.xaml页面.在加载后我们可以通过鼠标右键菜单中的"上一页"和"下一

Silverlight实用窍门系列:36.Silverlight中播放视频和打印文档【附带源码实例】

在silverlight实际项目中时常会需要播放视频和打印文档,在本节中我们将制作一个最简单的播放视频和打印文档的实例. 一.播放WMV视频 首先我们创建一个Silverlight应用程序SLShowVideo,然后放一个示例Wmv视频在SLShowVideo.web项目的根目录下面. 然后我们在Xaml文档中放入一个MediaElement控件,并写入以下代码: <MediaElement Height="377" HorizontalAlignment="Left&

Silverlight实用窍门系列:42.读取拖动到控件上的外部txt和jpg文件,多外部文件的拖动【附带实例源码】

本实例将读取拖动到Silverlight的ListBox控件中的txt文件或者Jpg文件.在本实例中将讲如果通过UIelementA.Drop事件获取到拖动到UIelementA上的文件的相关名称以及路径等信息,以处理多个外部文件拖动到Silverlight中的相关一些小技巧的应用和操作. 在本例中我们设置外部文件拖动到ListBox中去,首先我们要设置ListBox的AllowDrop="True",再添加一个Drop事件Drop="listBox1_Drop",

Silverlight实用窍门系列:41.Silverlight中调用麦克风模拟录音机设备,存储为WAV音频【附带实例源码】

   在Silverlight 4中支持了麦克风设置的调用,在本节中我们将调用麦克风设备,然后进行录音,并且将录制的声音存取为Wav音频文件.         第一步.首先我们从AudioSink类派生一个音频接收器类:WavAudioSink.其代码如下所示: public class WavAudioSink:AudioSink { // 设置需要记录的内存流 private MemoryStream _stream; // 设置当前的音频格式 private AudioFormat _fo

Silverlight实用窍门系列:35.细解Silverlight冒泡路由事件和注册冒泡路由事件【附带实例源码】

Silverlight中的事件分为普通事件和冒泡路由事件,它并没有包括WPF中的隧道路由事件,在本章中将详细讲解冒泡路由事件和如何注册一个冒泡路由事件. 一.细解冒泡路由事件 冒泡路由事件可以比喻为:一个父对象X包含子对象A,在子对象A中没有事件处理程序,但是父对象X中有一个鼠标左击事件处理程序.当用户点击子孙对象A时,这个事件又鼠标左击冒泡传递到父对象X.父对象的事件处理程序就处理这次点击事件. 总结出来就是:冒泡路由事件是从子孙的元素传递到父对象事件处理程序中进行处理的一种解决方案,直到这个

Silverlight实用窍门系列:51.Silverlight页面控件的放大缩小、Silverlight和Html控件的互相操作【附带源码实例】

    本节将讲述三个Silverlight中应用的小技巧:Silverlight页面的放大缩小.Silverlight操作Html.Html操作Silverlight控件. 一.Silverlight页面的放大缩小         首先对于Silverlight页面的放大缩小我们可以使用ScaleTransform对Canvas控件进行设置.这样所有在该Canvas控件内的所有子控件都被放大缩小.         下面我们看Xaml源码如下: <Canvas MouseWheel="La