Asp.Net MVC3中如何进行单元测试?
下面我们就以一个示例演示一下如何进行单元测试?
public Model.UserInfo UpdateEntity(Model.UserInfo entity)
{
db.UserInfo.Attach(entity);
db.ObjectStateManager.ChangeObjectState(entity, EntityState.Modified);
return entity;
}
针对以上方法我们做一个单元测试:
1.鼠标放在方法名上,右键选择创建单元测试如图:
弹出窗口,我们会看到勾选的复选框就是我们所要进行测试的方法:
直接点击确定就会在解决方案中为我们自动生成一个测试的项目,UnitTest文件夹是本人自己加的,可能还没有App.Config,我们只需要把实体模型中的App.Config文件拷贝到测 试项目中就OK:
2.具体实现测试的代码如下:
using System.Linq;
using Acmeway.DAL;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using Acmeway.Model; namespace Acmeway.UnitTest
{
/// <summary>
///这是 UserInfoRepositoryTest 的测试类,旨在
///包含所有 UserInfoRepositoryTest 单元测试
///</summary>
[TestClass()]
public class UserInfoRepositoryTest
{ private TestContext testContextInstance; /// <summary>
///获取或设置测试上下文,上下文提供
///有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
} #region 附加测试特性
//
//编写测试时,还可使用以下特性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext)
//{
//}
//
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
//[ClassCleanup()]
//public static void MyClassCleanup()
//{
//}
//
//使用 TestInitialize 在运行每个测试前先运行代码
//[TestInitialize()]
//public void MyTestInitialize()
//{
//}
//
//使用 TestCleanup 在运行完每个测试后运行代码
//[TestCleanup()]
//public void MyTestCleanup()
//{
//}
//
#endregion
[TestMethod]
public void UpdateEntityTest()
{
UserInfo userInfo = new UserInfo()
{
UserName = "卓越",
LoginCode = "zy",
PassWord = "",
ModfiedDate = DateTime.Now,
SubTime = DateTime.Now,
Remark = "追求卓越",
Email = "email@qq.com",
UserStatus = ,
DelFlag =
};
UserInfoRepository target = new UserInfoRepository();
var updateUser = target.AddEntity(userInfo);
Assert.AreEqual(true, userInfo.ID > ); UserInfoRepository target2 = new UserInfoRepository();
UserInfo user = new UserInfo();
user.ID = userInfo.ID;
user.UserName = "余光";
user.Remark = "迁梦余光";
user.LoginCode = userInfo.LoginCode;
user.ModfiedDate = userInfo.ModfiedDate;
user.SubTime = userInfo.SubTime;
user.DelFlag = ;
user.PassWord = "";
user.UserStatus = ;
user.Email = "email@qq.com"; target2.UpdateEntity(user);
var temp = target2.LoadEntities(u => u.ID == user.ID).FirstOrDefault<UserInfo>();
Assert.AreEqual(user.UserName,temp.UserName);
}
}
}
3.在将要进行测试的方法体中右键——>运行测试,就开始了测试,具体测试结果是否通过,会在测试结果窗口给出提示。
Asp.Net MVC3中如何进行单元测试?的更多相关文章
- ASP.NET MVC3中Model验证
原文:ASP.NET MVC3中Model验证 概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验 ...
- 在ASP.NET MVC3 中利用Jsonp跨域访问
在ASP.NET MVC3 中利用Jsonp跨域访问 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复 ...
- Asp.net MVC3 中,动态添加filter
Asp.net MVC3 中,动态添加filter filter是attribute,不支持泛型,传入的参数必须是固定的值.总之很受attribute本身的限制. 发现一篇老外的文章,动态设置filt ...
- (转)在ASP.NET MVC3 中利用Jsonp跨域访问
原文地址:http://www.cnblogs.com/skm-blog/p/3431999.html 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用 ...
- 在ASP.NET MVC3 中利用JSONP跨域登录WEB系统
在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复登陆.每次登录都需要输入用户名和密码.最近比较流行的就 ...
- Asp.net MVC3中全局图片防盗链
怎么样在Asp.Net MVC3中做到全局图片防盗链?如果熟悉Asp.Net的页面生命周期,相信解决这个问题应该很容易.下面就演示一下如何去做? 一.首先是全局的,我们肯定要在Global.asax文 ...
- jQuery Uploadify在ASP.NET MVC3中的使用
1.Uploadify简介 Uploadify是基于jQuery的一种上传插件,支持多文件.带进度条显示上传,在项目开发中常被使用. Uploadify官方网址:http://www.uploadif ...
- ASP.NET MVC3中Controller与View之间的数据传递总结
一. Controller向View传递数据 1. 使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...
- ASP.NET MVC3中Controller与View之间的数据传递
在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一. Controller向Vie ...
随机推荐
- 机器学习第2课:单变量线性回归(Linear Regression with One Variable)
2.1 模型表示 之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示: 我们将要用来描述这个回归问题的标记如下: m 代表训练集中实 ...
- 右键添加"在此处打开命令窗口"菜单
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Background\shell\CMD] @="在此 ...
- hdu 1030 Delta-wave(数学题+找规律)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1030 Delta-wave Time Limit: 2000/1000 MS (Java/Others ...
- 将 xml 文件 转为 DataTable
private static DataTable CreateDataTable(string table) { DataSet dataSet = new DataSet(); string dat ...
- IDEA如何打包可运行jar的一个问题
转载:http://bglmmz.iteye.com/blog/2058785 背景: 有时候,我们会用IDEA来开发一些小工具,需要打成可运行的JAR包:或者某些项目不是WEB应用,纯粹是后台应用, ...
- navigationItem的设置和titleView的设置
设置导航栏中间的标题 self.navigationItem.title = @"title"; 设置导航栏的主题颜色 self.navigationBar.barTintColo ...
- python 道生一,一生二,二生三,三生万物
千万不要被所谓“元类是99%的python程序员不会用到的特性”这类的说辞吓住.因为每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生万物 我是谁?我从哪来 ...
- 1通过URL对象的openStream()方法能够得到指定资源的输入流。
通过URL读取网页内容 1通过URL对象的openStream()方法能够得到指定资源的输入流. 2通过输入流能够读取.訪问网络上的数据. 案例: import java.io ...
- 机房收费系统合作版(二)——初识Git
研究了一天半的Git.查阅了不少资料,这里将Git的运用分为两条线做个简单梳理:本地控制库.远程控制库. **************************************本地控制库**** ...
- oracle经常使用函数(1)
1.返回与指定的字符相应的十进制数 select ascii('A') A,ascii('z') a,ascii('12') 一打,ascii(' ') kg from dual; 2.返回与指定十进 ...