下面我们就以一个示例演示一下如何进行单元测试?

      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中如何进行单元测试?的更多相关文章

  1. ASP.NET MVC3中Model验证

    原文:ASP.NET MVC3中Model验证 概述 上节我们学习了Model的数据在界面之间的传递,但是很多时候,我们在数据传递的时候为了确保数据的有效性,不得不给Model的相关属性做基本的数据验 ...

  2. 在ASP.NET MVC3 中利用Jsonp跨域访问

    在ASP.NET MVC3 中利用Jsonp跨域访问 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复 ...

  3. Asp.net MVC3 中,动态添加filter

    Asp.net MVC3 中,动态添加filter filter是attribute,不支持泛型,传入的参数必须是固定的值.总之很受attribute本身的限制. 发现一篇老外的文章,动态设置filt ...

  4. (转)在ASP.NET MVC3 中利用Jsonp跨域访问

    原文地址:http://www.cnblogs.com/skm-blog/p/3431999.html 在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用 ...

  5. 在ASP.NET MVC3 中利用JSONP跨域登录WEB系统

    在信息系统开发的时,根据相关业务逻辑难免会多系统之间互相登录.一般情况下我们需要在多系统之间使用多个用户名和密码.这样客户就需要在多个系统之间重复登陆.每次登录都需要输入用户名和密码.最近比较流行的就 ...

  6. Asp.net MVC3中全局图片防盗链

    怎么样在Asp.Net MVC3中做到全局图片防盗链?如果熟悉Asp.Net的页面生命周期,相信解决这个问题应该很容易.下面就演示一下如何去做? 一.首先是全局的,我们肯定要在Global.asax文 ...

  7. jQuery Uploadify在ASP.NET MVC3中的使用

    1.Uploadify简介 Uploadify是基于jQuery的一种上传插件,支持多文件.带进度条显示上传,在项目开发中常被使用. Uploadify官方网址:http://www.uploadif ...

  8. ASP.NET MVC3中Controller与View之间的数据传递总结

    一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...

  9. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

随机推荐

  1. 【Hadoop】Hadoop mr wordcount基础

    1.基本概念 2.Mapper package com.ares.hadoop.mr.wordcount; import java.io.IOException; import java.util.S ...

  2. K-近邻算法的Python实现 : 源代码分析

    网上介绍K-近邻算法的样例非常多.其Python实现版本号基本都是来自于机器学习的入门书籍<机器学习实战>,尽管K-近邻算法本身非常easy,但非常多刚開始学习的人对其Python版本号的 ...

  3. node - 上传文件并且修改名称

    html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. 计算两个有序数组的第K大数(转)

    传统解法,最直观的解法是O(m+n).直接merge两个数组,然后求第K大的数字. 如果想要时间复杂度将为O(log(m+n)).我们可以考虑从K入手.如果我们每次能够删除一个一定在第K个元素之前的元 ...

  5. Nginx:处理HTTP请求

    参考资料<深入理解Nginx>(陶辉) 处理HTTP请求 接着上一次的内容,本次将说明HTTP框架是如何召集负责具体功能的各HTTP模块合作处理请求的. 在http://www.cnblo ...

  6. Servlet基本用法二接口和类

    转自:http://www.cnblogs.com/xujian2014/p/4536168.html 一.摘要 本文主要简单介绍开发Servlet需要用到的接口和类. 二.ServletReques ...

  7. java ee xml 学习

    该文章对j2ee的xml各种标签做了详细全面的说明 http://01121264-163-com.iteye.com/blog/1530063

  8. BIOS截图中文

  9. declare @t table

    DECLARE @t TABLE(date char(21))INSERT @t SELECT '1900-1-1 00:00:00.000'INSERT @t SELECT '1900-1-1 00 ...

  10. file_put_contents执行返回false,file_put_contents false(linux服务器httpd)

    file_put_contents执行返回false,file_put_contents false(linux服务器httpd) 默认下selinux是开启的查看SELinux状态:1./usr/s ...