public void 呼叫_ILogDao_DebugObj_DebugCollection_次數1_參數為參考型別() { var condition = new QueryCondition { Keyword = "3" }; IDao dao = Substitute.For <IDao>(); dao.QueryCondition(condition) .Returns(new List <DTO> { new DTO { Id = 3, Name = "C" } }); ILogDao logDao = Substitute.For <ILogDao>(); var target = new BL(dao, logDao); target.Query(condition); // test success:reference equal // logDao.Received(1).DebugObject(condition); // test fail //var expectedCondition = new QueryCondition { Keyword = "3" }; //logDao.Received(1).DebugObject(expectedCondition); logDao.Received(1).DebugObject(Arg.Is <QueryCondition>(x => QueryConditionIsEqual(x, condition))); }
public void 呼叫_ILogDao_Debug_次數1() { IDao dao = Substitute.For <IDao>(); dao.Query().Returns(new List <DTO> { new DTO { Id = 1, Name = "A" }, new DTO { Id = 2, Name = "B" } }); ILogDao logDao = Substitute.For <ILogDao>(); new BL(dao, logDao).Query(); //logDao.ReceivedWithAnyArgs(2).Debug(string.Empty); //logDao.ReceivedWithAnyArgs(1).Debug(string.Empty); logDao.Received(1).Debug("No Condition QueryCondition"); }
public void 隔離測試() { IDao dao = Substitute.For <IDao>(); dao.Query().Returns(new List <DTO> { new DTO { Id = 1, Name = "A" }, new DTO { Id = 2, Name = "B" } }); ILogDao logDao = Substitute.For <ILogDao>(); var target = new BL(dao, logDao); var actual = target.Query(); var expected = new[] { new { Id = 1, Name = "A" }, new { Id = 2, Name = "B" } }; actual.Should().BeEquivalentTo(expected); }
public void 呼叫_參數為IEnumerable() { IEnumerable <int> ids = new[] { 5 }; IDao dao = Substitute.For <IDao>(); // 如果 predicate deletegate 回傳是 true 時,就會回傳 Returns() 裡面所指定的 物件 dao.QueryCondition(Arg.Is <IEnumerable <int> >(x => IdsAreEqual(x, ids))) .Returns(new List <DTO> { new DTO { Id = 5, Name = "E" } }); ILogDao logDao = Substitute.For <ILogDao>(); IEnumerable <int> actualCollection = null; logDao.DebugCollection(Arg.Do <int[]>(x => actualCollection = x)); var target = new BL(dao, logDao); var conditions = new List <VO> { new VO { Id = 5 } }; target.Query(conditions); IEnumerable <int> expectedCollection = new[] { 5 }; actualCollection.Should().BeEquivalentTo(expectedCollection); }
public LogService(ILogDao _repository) { repository = _repository; }
public BL(IDao dao, ILogDao logDao) { _dao = dao; _logDao = logDao; }
/// <summary> /// 耦合性高的做法 /// </summary> public BL() { _dao = new DaoImpl(); _logDao = new LogImpl(); }
public LogBLL() { dal = new ImplLog() { }; }