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;
         }
     }
 }

最新文章

  1. Best code水题之路
  2. UWP学习记录2-设计和UI之布局
  3. NYOJ 536 开心的mdd(DP)
  4. 纯HTML页面为了避免频繁前后台Ajax交互方案
  5. C# SqlHelper
  6. 运行第一个Hadoop程序,WordCount
  7. Oracle 10g体系结构及安全管理
  8. Codeforces Round #389(div 2)
  9. uva 10671 - Grid Speed(dp)
  10. Digi. Certificates: Key pairs usages
  11. hdu_1019Least Common Multiple(最小公倍数)
  12. Redis的部署
  13. [自用]多项式类数学相关(定理&amp;证明&amp;板子)
  14. java(MyEclipse)创建webservice和测试webservice
  15. Linux CentOS7 安装wkhtmltopdf工具
  16. leetcode python 007
  17. Django项目中使用celery做异步任务
  18. hdu-2063-过山车(匈牙利算法)
  19. django面试四
  20. MySql安装完成后,Navicat连接不上的问题

热门文章

  1. Node学习笔记:建立TCP服务器和客户端之间的通信
  2. mac 终端光标在单词之间移动
  3. apache kafka系列之在zookeeper中存储结构
  4. day43 数据库学习egon的博客 视图、触发器、事务、存储过程、函数
  5. 高阶组件 Higher-order Components (HOC) 知识点
  6. Ansible 常用模块之ping(四)
  7. ORACLE SQL Developer日期显示格式不全
  8. [转]Python中yield的解释
  9. Java生成PDF文档(表格、列表、添加图片等)
  10. Vivado HLS初识---阅读《vivado design suite tutorial-high-level synthesis》(3)