Moq:處理 Out 和 Ref 參數
由於 Action<T>
的通用性質,使用 Moq 模擬和引用參數會帶來獨特的挑戰。 讓我們探討一下如何解決這個問題。
對於out參數,Moq提供了直接的解。 設定鏡像方法調用,捕捉輸出值:
<code class="language-csharp">public interface IService { void DoSomething(out string a); } [TestMethod] public void TestOutParameter() { var serviceMock = new Mock<IService>(); string expectedValue = "value"; serviceMock.Setup(s => s.DoSomething(out expectedValue)); string actualValue; serviceMock.Object.DoSomething(out actualValue); Assert.AreEqual(expectedValue, actualValue); }</code>
Moq 在設定期間有效捕獲 expectedValue
並在呼叫模擬方法時使用它。
不幸的是,Moq 並沒有為 ref 參數提供類似優雅的解決方案。 Moq 快速入門指南(https://www.php.cn/link/a77054e9d6c3fb75907aed15140ca1e6) 提供了有關進階使用情境的更全面的指導,包括處理ref 參數的替代方法,其中可能涉及使用回調或自訂匹配器。
以上是如何使用最小起訂量模擬和參考參數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!