我已經使用Moq 3.0設置了一個測試。我需要測試一個方法,它會改變數據庫中的某些值。我正在使用ASP.NET MVC,所以我想測試我的控制器。如何Moq有參數的方法,必須用列表做些什麼
我安裝這個
// Generate an implementer of IProductsRepository at runtime using Moq
var mockTareasRepos = new Mock<IRepository>();
mockTareasRepos.Setup(x => x.ExecutedTask).Returns(tasks.AsQueryable());
return mockTareasRepos.Object;
我需要補充的是得到一個任務id的新方法,並更改任務列表的字段的值。假設我需要更改的值是StartTime,它是一個日期時間,我需要將該值設置爲null,並且需要將該重複值設置爲1。
這是任務類
public class {
int taskId {get;set;}
DateTime StartTime {get;set;}
int retrys {get;set;}
}
我怎麼做到的?
mockTareasRepos.Setup(x => x.SetToExecuteTask(It.IsAny<int>()))
我希望你明白我需要什麼,我的英語不太好。
它可以幫助,但我仍然需要執行方法的一些王,所以我可以有例如對象中刪除形成列表 - 一樣,如果它的remove形成數據庫 - 因爲我的控制器應該給我列表的Coutn值。 – 2010-10-19 17:14:43
CONTROLLER的責任是什麼?測試一下,而不是你的倉庫,這就是爲什麼你嘲笑它。您不需要測試您的存儲庫是否從列表中刪除某些內容,因爲這是存儲庫的可重置性,而不是控制器(它是受測試的系統)。 – goenning 2010-10-19 19:44:49