如何在對象上設置linq擴展的位置? DbSet
在我的情況。這裏是我的代碼:Moq - setup在哪裏擴展?
this.workflowStateSet
.Setup(m => m.Where(It.IsAny<Expression<Func<Model.WorkflowState, int, bool>>>()))
.Returns(new List<Model.WorkflowState>().AsQueryable());
但是,它給了我的異常不是很熟悉例外:
System.NotSupportedException:表達式引用 不屬於嘲笑對象的方法:
m => m.Where<WorkflowState>
我將不勝感激任何提示。
你想模擬Linq-methods?非常可怕,因爲它們都是靜態的和通用的。爲什麼需要這個?你不能爲你的測試創建一些虛擬的元素序列嗎? – HimBromBeere
是的,你不能。擴展方法是靜態方法周圍的語法糖,並且不能覆蓋靜態方法。 – Will
@會 - 我不嘲笑他們,我想設置他們。那麼,我不知道它是如何工作的,但安裝程序會爲給定的方法創建類似於裝飾器的東西,對吧?所以你可以設置方法調用的結果而不用調用它。這不正確嗎? – Qerts