Faking Non-Public Ref and Out Parameters
To return Ref and Out parameters of non-public methods, set the value of these arguments before faking the call to the method.
When to Use
When your test requires a specific return value from Ref and Out parameters.
Syntax
C# var fakeParam = <result>; Isolate.NonPublic.WhenCalled<Dependency>("method").AssignRefOut(fakeParam).<bahavior>;
VB Dim fakeParam = <result> Isolate.NonPublic.WhenCalled(Of Dependency)("method").AssignRefOut(fakeParam).<bahavior>
Samples
C# [TestMethod, Isolated] public void VerifyPrivateStaticMethodWithRef_Return() { int fakeParam = 3; Isolate.NonPublic.WhenCalled<Dependency>("PrivateMethodOutParam").AssignRefOut(fakeParam).IgnoreCall(); var result = Dependency.CallPrivateMethodOutParam(); Isolate.Verify.NonPublic.WasCalled(typeof(Dependency), "PrivateMethodOutParam"); Assert.AreEqual(3, result); }
VB <TestMethod, Isolated> Public Sub VerifyPrivateStaticMethodWithRef_Return() Dim fakeParam As Integer = 3 Isolate.NonPublic.WhenCalled(Of Dependency)("PrivateMethodOutParam").AssignRefOut(fakeParam).IgnoreCall() Dim result = Dependency.CallPrivateMethodOutParam() Isolate.Verify.NonPublic.WasCalled(GetType(Dependency), "PrivateMethodOutParam") Assert.AreEqual(3, result) End Sub