当前位置: 首页 > news >正文

Silverlight 异步单元测试

Silverlight 中的很多操作都是异步的,很多情况下要求单元测试也是异步的,但是介绍异步单元测试的文档很少。通过对 Silverlight Toolkit 中的 Microsoft.Silverlight.Testing 和 Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight 这两个文件的分析以及尝试,终于发现了做异步单元测试的方法,如果需要在 Silverlight 项目中使用异步单元测试,大致的步骤如下:

  1. 新建 Silverlight 项目,添加对 Microsoft.Silverlight.Testing.dll 、Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll 连个文件的引用,这个不用做过多的介绍。
  2. 打开 App.xaml.cs 文件,添加对命名空间 Microsoft.Silverlight.Testing 的引用;找到 Application_Startup 方法, 将应用程序的 RootVisual 改为测试页面,然后可以删除自动生成的 MainPage.xaml 文件,修改好的 Application_Startup 方法如下:
    image
  3. 新建单元测试类 AsyncTest ,让它继承自 Microsoft.Silverlight.Testing.SilverlightTest 基类, 然后添加 TestClass 标记,最终文件内容如下图所示:
    image
  4. 添加异步单元测试,假设要测试内容是读取服务端一个文件,然后判断返回的文件内容是否是正确的。添加测试方法,并依此添加两个标记:TestMethod、Asynchronous, 如下所示:
    image 
  5. 添加测试代码如下:
    image 
  6. 最终运行效果如下图:
    image

以上就是通过尝试发现的做异步单元测试的方法, 在实际做异步单元测试的时候,下面这几个方法需要留意:

  1. TestComplete
  2. EnqueueWorkItem
  3. EnqueueDelay
  4. EnqueueConditional
  5. EnqueueTestComplete
  6. EnqueueCallback

当然这些方法目前没有官方文档,就不妄下判断了,可以自己尝试一下,应该怎么使用。

相关文章:

  • thin还是thick(续),实证新结论!
  • Adapter Patterm简单随笔
  • 雨林木风推出的8G免费U盘
  • 《软件随想录》读后感
  • 全员营销制造3G繁华表象
  • 慧悟
  • 【转】Tokyocabinet/Tokyotyrant文档大合集
  • openssl的vs/vc工程配置与make
  • 软件工程之感想
  • TRUNCATE TABLE 删除表中的所有行,而不记录单个行删除操作
  • GRE OVER IPSEC的配置方法
  • 互联网软件应用与开发
  • PHP面试题及答案(一)
  • ASP基础教程:ADO存取数据库时如何分页显示
  • ASP.NET4.0新的%: %语法用于HTML Encoding
  • 【React系列】如何构建React应用程序
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • Go 语言编译器的 //go: 详解
  • idea + plantuml 画流程图
  • Puppeteer:浏览器控制器
  • Spark RDD学习: aggregate函数
  • Spark学习笔记之相关记录
  • Vue全家桶实现一个Web App
  • 爱情 北京女病人
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 今年的LC3大会没了?
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 项目管理碎碎念系列之一:干系人管理
  • 小而合理的前端理论:rscss和rsjs
  • 在Docker Swarm上部署Apache Storm:第1部分
  • 中文输入法与React文本输入框的问题与解决方案
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​ssh免密码登录设置及问题总结
  • ​比特币大跌的 2 个原因
  • #Linux(权限管理)
  • $ git push -u origin master 推送到远程库出错
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (办公)springboot配置aop处理请求.
  • (二)Eureka服务搭建,服务注册,服务发现
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (五)MySQL的备份及恢复
  • (一一四)第九章编程练习
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • ./和../以及/和~之间的区别
  • .a文件和.so文件
  • .Net FrameWork总结
  • .NET处理HTTP请求
  • @property python知乎_Python3基础之:property
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [C puzzle book] types
  • [CC2642R1][VSCODE+Embedded IDE+IAR Build+Cortex-Debug] TI CC2642R1基于VsCode的开发环境
  • [daily][archlinux][game] 几个linux下还不错的游戏