标签:style blog http io color ar os 使用 sp
public interface IDBAccess { List<string> GetList(string request); } public class DBAccessImp : IDBAccess { public List<string> GetList(string request) { throw new NotImplementedException(); } }
static void Main(string[] args) { //创建Ninject内核实例 IKernel ninjectKernel = new StandardKernel(); //绑定接口到实现了该接口的类 ninjectKernel.Bind<IDBAccess>().To<DBAccessImp>(); }
public class TestClass { private IDBAccess db = null; public TestClass(IDBAccess db) { this.db = db; } public List<string> GetList() { //这里可认为是调用数据访问层的实现代码 var response = this.db.GetList("Hello"); return response; } }
[TestCategory("测试分类")] [TestMethod] public void GetListTest() { var mockDb = new Mock<IDBAccess>(); var list = new List<string>(); list.Add("Hello"); list.Add("World"); list.Add("James"); //设置请求参数;返回参数等 mockDb.Setup(m => m.GetList(It.IsAny<string>())) .Returns(list); TestClass test = new TestClass(mockDb.Object); //执行TestClass.GetList()方法时 //不会实际的去调用数据访问层 //而是用list的值作为GetList()方法的返回值(返回Hello、World、James集合) //这样以后每次测试GetList()中其他业务逻辑时,就不用初始化数据库数据,直接用 //Moq模拟的数据即可 test.GetList(); }
3、源码下载
标签:style blog http io color ar os 使用 sp
原文地址:http://www.cnblogs.com/gossip/p/4100296.html