随笔分类 -  UnitTest

Visual Studio中UnitTesting单元测试模板代码生成
摘要:在软件研发过程中,单元测试的重要性直接影响软件质量。经验表明一个尽责的单元测试方法将会在软件开发的某个阶段发现很多的Bug,并且修改它们的成本也很低。在软件开发的后期阶段,Bug的发现并修改将会变得更加困难,并要消耗大量的时间和开发费用。无论什么时候作出修改都要进行完整的回归测试,在生命周期中尽早地对软件产品进行测试将使效率和质量得到最好的保证。在提供了经过测试的单元的情况下,系... 阅读全文
posted @ 2015-05-09 10:06 PetterLiu 阅读(3390) 评论(2) 推荐(1)
Javascript单元测试Unit Testing之QUnit
摘要:QUnit是一个基于JQuery的单元测试Unit Testing 框架。虽然是基于JQuery但用来测试纯Javascript代码。 用来运行Javascript单元测试用例的html页面是这样的: QUnit test runner 假设我们有如下... 阅读全文
posted @ 2014-06-14 14:57 PetterLiu 阅读(893) 评论(0) 推荐(0)
开源项目Foq简介
摘要:Foq是一个轻量级-线程安全的mocking类库。使用它来mock抽象类与接口这是我们通常的做法。Foq的名字来自Moq,如果你使用过Moq的话,自然后联想到它能做什么。Foq主要是为了F#的开发人员做单元测试。可以与FsUnit一起使用编写一些Fluent的断言。甚至与AutoFixture一起简化单元测试的设置。 让我们来看一些简单的代码片段: // Moq from... 阅读全文
posted @ 2014-03-31 15:01 PetterLiu 阅读(846) 评论(0) 推荐(1)
5个单元测试容易放的错误
摘要:单元测试对于每个项目都是需要的,它不仅仅是帮助找出代码中缺陷,更重要是在你修改与增加新模块时能确保原来的模块没有被破坏。 下面是5个单元测试容易放的错误: 1. 与协作模块一起去测试算法。算法逻辑如果能从协作的代码中分离出来,应该是最简单的测试。否则,你得必须通过作业队列之前完成测试。作业队列中只有一部分复杂的逻辑。除非你正在测试是作业队列本身,并分别测试逻辑。无论代码和... 阅读全文
posted @ 2014-02-28 15:12 PetterLiu 阅读(1139) 评论(0) 推荐(0)
使用UnityAutoMoq简化单元测试
摘要:在ASP.NET Web 应用开发中,我们经常使用Moq来实现一些Mock对Controller,Action做单元测试。UnityAutoMoq是一个集成Unity and Moq的组件。您可以使用下面的Command-line在控制台安装它: Install-Package UnityAutoMoq 假设有这样的Controller代码: ... 阅读全文
posted @ 2012-06-08 16:45 PetterLiu 阅读(1348) 评论(0) 推荐(0)
Asp.net MVC 3 RTM 源代码中单元测试帮助类
摘要:Asp.net MVC 3 RTM Source Code 您可以从这里下载. 在源代码中有一个帮助处UnitTest中Exception的帮助类,我们还可以继续扩展。看下面的代码: public static class ExceptionAssert { private const string ArgumentExceptionMes... 阅读全文
posted @ 2012-02-18 15:48 PetterLiu 阅读(713) 评论(0) 推荐(0)
Asp.net MVC中使用Razor Generator实现View的单元测试
摘要:Asp.net MVC 3 应用程序中,单元测试对项目的质量意义重大。除了对Model,Controller进行单元测试,有时还需要对View也进行。对View进行测试目前并不容易做,大多数情况下可能做的是BlackBox测试。现在可以使用Razor Generator简化对Razor View单元测试。你可以从这里安装 VS2010的扩展。 然后在VIEW上右键属性,... 阅读全文
posted @ 2012-01-21 10:41 PetterLiu 阅读(4070) 评论(3) 推荐(3)
使用Moles框架实现HttpWebRequest与HttpWebResponse的单元测试
摘要:有时程序使用HttpWebRequest与HttpWebResponse实现HTTP的访问,但我们想测试它们不太容易实现。现在我们可以使用Moles框架来实现对它的单元测试。如果您还不了解Moles,可以先到官方网站看这个文档。下面我们来看片段代码: [TestMethod][HostType("Moles")][Description("Testing with... 阅读全文
posted @ 2012-01-07 11:15 PetterLiu 阅读(1645) 评论(0) 推荐(0)
Asp.net MVC3扩展之Ajax异常处理特性
摘要:在Asp.net MVC 3 Web开发中,我们会大量使用各种ajax请求,针对ajax请求如何结何server端如何做异常处理呢?我们可以扩展ActionFilterAttribute,实现一个Ajax异常处理特性。假设您是使用JQuery脚本开发来实现Ajax,看代码: 1: #region AjaxExceptionAttribute 2: /... 阅读全文
posted @ 2011-12-18 15:33 PetterLiu 阅读(5525) 评论(0) 推荐(2)
数据访问层的单元测试
摘要:数据访问层在分层结构,比较常见. 有时可能是数据访问模块. 假设数据访问层后端是数据库,那我们如何测试他们的呢? 有时实际这种测试是集成测试了.有时数据库里还有一些逻辑,触发器,约束等. 个人十分不建议把业务逻辑放在数据库里实现. 最常见的数据库表的操作create, read, update和delete(简称CRUD), 例如我们需要测试某个Add方法,在这个测试方法完成后, 希望这条测试数... 阅读全文
posted @ 2011-11-19 23:05 PetterLiu 阅读(4591) 评论(0) 推荐(0)
MsTest中实现类似NUnit中Assert.Throws
摘要:我们做单元测试NUnit中,有一个断言Assert.Throws很好用,但当我们使用MsTest时你需要这样写: 1: [TestMethod] 2: [ExpectedException(typeof(ArgumentNullException))] 3: public void WriteToTextFile() 4: ... 阅读全文
posted @ 2011-09-04 22:05 PetterLiu 阅读(2605) 评论(1) 推荐(3)
使用Moles对静态方法做UnitTest
摘要:我们在开发,有时遇到一些Legcy代码,然后需要对它们进行UnitTest。UnitTest的重要性在这里不再说了。但是发现某些Class中有些方法是Static的,按以往的方法我们需要用Extact Interface 方法 从那个需要测试的Class,然后使用 IOC /DI 的方式替换具体的实现,用一个Fake Class或Mock 一个实现来完成 UnitTest。现在我们可以使用Mol... 阅读全文
posted @ 2011-08-09 15:19 PetterLiu 阅读(1086) 评论(0) 推荐(0)
使用WCF web API测试基于REST的WCF Service
摘要:前面的文章,我们使用WCF构建一个简单的REST的WCF Service。之前我们使用Fiddler来测试,现在还可以使用WCF Web API来测试。代码看来起更加简洁首先,你可从CODEPLEX下载,也可以从NuGet安装它,执行: Install-Package netfx-WebApi.Testing WCF HTTP高层架构是这样的: 基于上次的DEMO,我们使用来写一些UnitTes... 阅读全文
posted @ 2011-07-01 13:48 PetterLiu 阅读(2241) 评论(2) 推荐(0)
使用Moq来Mock多个接口
摘要:假设您已对Moq已经有所了解,我们经常会遇到多个Interface,在这个情况下我们如何去Mock它们呢,看下面的示例:定义下如下的Interface:然后定义一个Generic方法实现两个Interface 特别的方法相加,返回结果:让我们来看如何Mock它们:注意这里使用As方法,增加一个指定的Interface到Mock.下面这个方法也可以Pass:您可以下载Moq,NUnit测试以上代码.... 阅读全文
posted @ 2010-09-04 16:32 PetterLiu 阅读(3019) 评论(0) 推荐(0)