我有這樣的事情:MSTest的 - 起訂量建立一個列表參數返回空列表
WebRequestManagerMock
.Setup(x => x.GetItemsAsync(It.IsAny<IEnumerable<Order>>()))
.Returns<IEnumerable<Order>>(orders => Task.FromResult<IEnumerabe<Item>>(m_Items.Take(orders.Count())));
m_Items
是一個靜態列表我填寫在類初始化,而不是空的。
Orders
當我調試測試時也不是空的。
當我打電話GetItemsAsync
無論訂單有多少,我都會得到0件商品。
該模擬也是靜態的。
我做錯了什麼?
感謝您的幫助。出於某種原因,Visual Studio不能識別異步測試,並且我無法運行它們。除此之外,我把我的模擬移動到了它自己的測試中,它有點作用,直到現在我有一個返回表達式的問題 - 沒有它的工作參數列表,但沒有它(lambda表達式) – user6251216
@ user6251216,編輯測試,以便它不再是異步並仍然有效。記下這些變化,看看它現在會識別測試。您使用的是什麼版本的VS,以及.Net的哪個版本是您的目標 – Nkosi
最初是使用.NET 4的Visual Studio 2013,但最近我使用.NET 4.5將其升級到了2015。我目前對'Returns>(...)'有問題 - 它引發了一個關於參數數量的反射異常,儘管似乎我沒有問題。正常的'Returns'雖然工作。 –
user6251216