我想讓我的腦袋圍繞moq和mvc。我已經設置了一個moq併爲其添加了一個有效的安裝程序。添加一個方法來設置一個Moq測試
我的測試調用我的界面。
var id = 2;
var customer = new Customer()
{
CustomerId = 2,
FirstName = "Tomas",
LastName = "Smith"
};
var moq = new Mock<ICustomerRepository>();
moq.Setup(x => x.Find(id, 1234))
.Returns(Task.FromResult(customer));
var controller = new MyController(moq.Object);
var result = await controller.Get(id);
現在,在我的獲取操作中,我打電話給我的存儲庫以獲取此案例中的一位客戶。但我需要傳入一個額外的參數,這是一個int
var customer = await _repository.FindAsync(customerid, GetSourceId());
我怎樣才能moq GetSourceId()返回一個int?而實際上並不需要調用我知道的方法,因爲它從請求頭中提取數據會失敗?
謝謝Brian。是的,我認爲會有這樣的缺點。 –
對不起布賴恩我以爲我有,但我沒有。所以我使用類似於你的例子'var ctlr = new Mock(moq.Object); ctlr.Setup(i => i.GetSourceId())。設置GetSourceId。但是,我打算如何設置我想要調用的操作? –
更正,我使用你的例子包含了一個上面的代碼片斷,這個代碼片段適用於我。調用對象的方法調用原始方法沒有問題。上述解決方案與我的幾乎完全相同。 –