Moq: Out パラメーターと Ref パラメーターの処理
Moq を使用してパラメーターをモックアウトし、参照する場合、Action<T>
の汎用的な性質により、独特の課題が生じます。 これに対処する方法を見てみましょう。
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 パラメーターを処理するための代替アプローチを含む、高度な使用シナリオに関するより包括的なガイダンスを提供します。
以上がMoq でパラメータをモックアウトおよび参照する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。