using System.Collections.Generic;
 using System.Linq;
 using Microsoft.VisualStudio.TestTools.UnitTesting;

 namespace TestingDemo.Tests {

     [TestClass]
     public class AdminControllerTests {

         [TestMethod]
         public void CanChangeLoginName() {

             // Arrange (set up a scenario)
             User user = new User() { LoginName = "Bob" };
             FakeRepository repositoryParam = new FakeRepository();
             repositoryParam.Add(user);
             AdminController target = new AdminController(repositoryParam);
             string oldLoginParam = user.LoginName;
             string newLoginParam = "Joe";

             // Act (attempt the operation)
             target.ChangeLoginName(oldLoginParam, newLoginParam);

             // Assert (verify the result)
             Assert.AreEqual(newLoginParam, user.LoginName);
             Assert.IsTrue(repositoryParam.DidSubmitChanges);
         }
     }
     /// <summary>
     /// 模仿接口的实现
     /// </summary>
     class FakeRepository : IUserRepository {
         public List<User> Users = new List<User>();
         public bool DidSubmitChanges = false;

         public void Add(User user) {
             Users.Add(user);
         }

         public User FetchByLoginName(string loginName) {
             return Users.First(m => m.LoginName == loginName);
         }

         public void SubmitChanges() {
             DidSubmitChanges = true;
         }
     }
 }

asp.net mvc 5 单元测试小例子的更多相关文章

  1. ASP.NET MVC之单元测试

    ASP.NET MVC之单元测试分分钟的事2014-07-15 13:05 by 书洞里的猫, 550 阅读, 4 评论, 收藏, 编辑 一.为什么要进行单元测试? 大部分开发者都有个习惯(包括本人在 ...

  2. ASP.NET MVC编程——单元测试

    1自动化测试基本概念 自动化测试分为:单元测试,集成测试,验收测试. 单元测试 检验被测单元的功能,被测单元一般为低级别的组件,如一个类或类方法. 单元测试要满足四个条件:自治的,可重复的,独立的,快 ...

  3. [转]模拟HttpContext 实现ASP.NET MVC 的单元测试

    众所周知 ASP.NET MVC 的一个显著优势即可以很方便的实现单元测试,但在我们测试过程中经常要用到HttpContext,而默认情况下单元测试框架是不提供HttpContext的模拟的,本文通过 ...

  4. ASP.NET MVC之单元测试分分钟的事

    一.为什么要进行单元测试? 大部分开发者都有个习惯(包括本人在内),常常不喜欢去做单元测试.因为我们对自己写的程序总是盲目自信,或者存在侥幸心理每次运行通过后就直接扔给测试组的妹子们了.结果妹子一测, ...

  5. asp.net mvc使用jwt简单例子

    Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准.该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景.JWT的声 ...

  6. MVC引用asp.net报表(测试小例子)

    public class Default1Controller : Controller { // // GET: /Default1/ public ActionResult Index() { r ...

  7. spring+spring mvc+JdbcTemplate 入门小例子

    大家使用这个入门时候 最好能够去 搜一下 spring mvc 的 原理,我放一张图到这里,自己琢磨下,后面去学习就容易了 给个链接 (网上一把,千万不能懒)    https://www.cnblo ...

  8. C#单元测试小例子

    步骤简略,特别处进行说明. 以VS2015为例. 1.创建一个解决方案方案,如添加一个ConsoleApplication1的解决方案. 2.在解决方案的默认项目中,添加一个Calc类 3.将Calc ...

  9. Asp.net MVC 控制器ActionResult的例子

    ActionResult 父类型 ViewResult View() 多重载应用 PartialViewResult PartialView() 部分试图 New EmptyResult()  空 如 ...

随机推荐

  1. HTTP与TCP的区别和联系--转载

    相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助. 一.基本概念 1.TCP连接 手机能够使用联网功能是因为手机底层实现了TCP ...

  2. 被卡住的2个问题:1.输入url不执行后台的java方法 2.改了jsp页面,再次请求还是以前的那个页面

    1.问题 一个子项目,它的java代码都是打包到磁盘这个文件夹  D://commlib java代码改了之后,也是打包到这个文件夹里,刷新就可看见改了的. 要想子项目能运行,必须在主项目中从/com ...

  3. python使用dns轮循检测web服务器是否异常

    我使用的是python2.7,我本来另装了一个python3.6,发现无法安装dnspython,于是只能换回来了 import dns.resolver #这个需要另外下载并安装(下载地址www.d ...

  4. Centos7使用yum安装程序软件时提示未找到安装包解决方法

    查找程序软件源,以sshd为例,假设sshd安装包无法找到,那么可以通过以下方法解决 yum provides sshd 然后我们就可以安装*.X86_64的程序软件源 例如yum install o ...

  5. C#更新程序设计

    更新程序设计 大致设想了两种更新方式,如下所示: 一种简单暴力,直接请求静态资源服务器上的文件 第二种考虑了网络传输不稳定时,中断的情况.再次启动更新时会检测本地文件下载多少了,然后接着上次中断的位置 ...

  6. vi常用操作

    什么是vi: vi是Linux/Unix底下最常用的文本编辑器,可以理解为和Windows下的txt一样,咱们一般操作linux服务器的时候都是没有图形化界面的, 怎么移动光标,到哪个位置,替换修改什 ...

  7. http1.1 和 http2 的协议对比测试

    http1.1 和 http2 的协议对比测试 http 协议发展了很多年,目前最为流行的是 http 2. 发现有些网站很流行的网站用的 http1.1, 询问后原来是因为有特殊用途. https: ...

  8. ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)

    ES6 中 Class 与 TypeScript 中 Class 的区别(待补充)

  9. spark机器学习

    多层感知器(MLP) from __future__ import print_function from pyspark.ml.classification import MultilayerPer ...

  10. [c/c++]fopen用法及参数介绍

    函数定义: FILE * fopen ( const char * filename, const char * mode ); 参数mode: "r" read: 为输入操作打开 ...