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. 什么是pytorch(1开始)(翻译)

    Deep Learning with PyTorch: A 60 Minute Blitz 作者: Soumith Chintala 部分翻译:me 本内容包含: 在高级层面理解pytorch的ten ...

  2. /dev/null简单入门

    2>&1 /dev/null 将标准输入输出全部丢弃(表示2的输出重定向等同于1) 2>filename 把错误信息保存到filename 2>/dev/null >/ ...

  3. #pragma Directive in C/C++

    The #pragma is complier specified. for example, the code below does not work in gcc. #pragma startup ...

  4. removing-guest-session-at-login-in-ubuntu-14-04

    http://askubuntu.com/questions/451526/removing-guest-session-at-login-in-ubuntu-14-04

  5. docker 的前台模式和后台模式

    Detached(后台模式) vs foreground(前台模式) 当我们启动一个容器时,首先需要确定这个容器是运行在前台还是运行在后台. -d, --detach Run container in ...

  6. 通过script src引入ElementUI时,使用语句:window.ELEMENT.MessageBox.alert(xxx) 调用弹出框

    通过script src引入ElementUI时,使用语句:window.ELEMENT.MessageBox.alert(xxx) 调用弹出框.

  7. Nginx + Tomcat搭建集群

    一.Tomcat集群带来的好处 1.提高服务的性能,并发能力,以及高可用性 2.提供项目架构的横向扩展能力 二.Tomcat集群实现原理 通过Nginx负载均衡进行请求转发 三.Nginx + Tom ...

  8. pandas初识

    pandas初识 1.生成DataFrame型的数据 import pandas as pd import numpy as np dates = pd.date_range('20130101',p ...

  9. influxDB硬件配置指南

    原地址:https://docs.influxdata.com/influxdb/v1.6/guides/hardware_sizing/ 警告!此页面记录了不再积极开发的InfluxDB的早期版本. ...

  10. 帆软:不使用 __parameters__ 传参,问题。

    原帖地址:http://bbs.fanruan.com/thread-117614-1-1.html 在设计器本地可以用下面方式传参数,这个方式跟 &userID=28 的结果是一样的. Re ...