0
我正在做我的一些c#代碼的單元測試,我必須使用相同的模擬,但返回不同的值。例如,我想在我的單元測試中這樣做:如何模擬兩個數據庫調用,使相同的查詢,但返回列表的不同部分
[Test]
_mockDatabase.Setup(x => x.Query(It.IsAny<Filter>())).Returns(List[0]).Verifiable();
_mockDatabase.Setup(x => x.Query(It.IsAny<Filter>())).Returns(List[1]).Verifiable();
有沒有辦法在不改變我的實際代碼的情況下解決此問題。
爲什麼你「必須使用相同的模擬」? – Carson63000
,因爲我想調用相同的功能。對不起,我在單元測試中還是個新手。我可以爲被調用的同一個函數創建一個單獨的模擬嗎? –
如果你想獲得兩個不同的嘲笑返回值,無論是創建兩個嘲笑,或而不是設置'查詢()'和'It.IsAny',將它設置爲從兩個不同的濾波器參數返回兩個不同的返回值。 –
Carson63000