0
由於標題暗示我試圖測試一種方法,不幸的是我似乎在某個地方出錯了。該方法只應返回有客戶ID = 1測試存儲庫方法
這裏是我的測試
[TestMethod]
public void Returns_Correct_Number_Of_Workout_Dates_For_Valid_UserId()
{
//Arrange
List<GymSession> gymSessions = new List<GymSession>();
Customer cust = new Customer();
cust.CustomerId = 1;
gymSessions.Add(new GymSession() { Customer = cust, SessionId = 1, Date = new DateTime(2010, 1, 1) });
gymSessions.Add(new GymSession() { Customer = cust, SessionId = 2, Date = new DateTime(2010, 1, 2) });
gymSessions.Add(new GymSession() { SessionId = 3, Date = new DateTime(2010, 1, 3) });
gymSessions.Add(new GymSession() { Customer = cust, SessionId = 4, Date = new DateTime(2010, 1, 4) });
var mockRepos = new Moq.Mock<IGymSessionRepository>();
mockRepos.Setup(g => g.GymSession()).Returns(gymSessions.AsQueryable());
//Act
var result = mockRepos.Object.GetWorkoutDatesByCustomerId(1);
//Assert
Assert.AreEqual(3, result.Count());
}
這裏是倉庫的方法,我試圖測試
public IQueryable<GymSession> GetWorkoutDatesByCustomerId(int userId)
{
var gymSess = db.GymSessions.Where<GymSession>(g => g.Customer.CustomerId == userId);
return gymSess;
}
的想法是,設置擁有所有客戶,然後該方法將對它們進行過濾。計數似乎從未應用過濾器。有任何想法嗎?
'GymSession`是否有默認客戶?如果`GymSession.Customer`爲null,謂詞不會拋出嗎? – 2011-01-10 17:43:26
它沒有默認客戶。結果總是4.我是新來測試,所以我懷疑我要麼安裝錯誤,要麼錯誤地分配結果變量。但是,我不知道。 – hoakey 2011-01-10 17:52:46