簡體   English   中英

具有多個約束的單個泛型參數的 Moq 方法

[英]Moq method with single generic parameter with multiple constraints

我有以下方法簽名,我想設置一個模擬:-

public int Update<T>(T item) where T : IItemID, IItemData

嘗試設置模擬(使用 Moq)時,我無法為 T 設置正確的類型:-

mock.Setup(x => x.Update(It.IsAny<???>()).Returns(1);

我在我的單元測試項目中嘗試過“假”界面:-

public interface IFake : IITemID, IItemData
{
}

mock.Setup(x => x.Update(It.IsAny<IFake>()).Returns(1)

但是我的單元測試中的驗證失敗,因為我使用的對象不是從 IFake 繼承的。 該對象是從 IItemID 和 IItemData 繼承的實際類型。

有沒有辦法為這個具有多個約束的 Update 方法設置模擬?

更新感謝所有信息。 再次經歷這個之后,看起來最好的解決方案是不使用多個接口約束,因為這不能被模擬。 我只是想知道是否有解決方案,因為這似乎會在以后導致大量問題。

再次感謝!

嘗試

mock.Setup(x => x.Update(It.IsAny<It.IsAnyType>()).Returns(1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM