誰かが私を助けてくれることを願っています。MOQのRefキーワードに関する問題
私は別のメソッド(内部メソッド)を呼び出すクラスを依存として持つメソッド(外部メソッド)をテストしようとしています。この内部メソッドは、参照パラメータとしてブール値をとります。私の問題は、これまでこのBoolean参照パラメータを制御できなかったことです。
(注 - 下に示すコードは、問題を説明するために書かれたものであり、実際のコードとは異なります)。
ここからのMOQドキュメント - https://github.com/Moq/moq4/wiki/Quickstart は、Ref/Out parmsを扱う際の概要を示していますが、それは有用ではありません。
私は(私はここにいた - Assigning out/ref parameters in Moq)作品例を試してみました
public interface IService
{
void DoSomething(out string a);
}
[Test]
public void Test()
{
var service = new Mock<IService>();
var expectedValue = "value";
service.Setup(s => s.DoSomething(out expectedValue));
string actualValue;
service.Object.DoSomething(out actualValue);
Assert.AreEqual(actualValue, expectedValue);
}
しかし、私は実際に私はそれを動作させることはできません実行したいコードをしようとしたとき。 これは以下に含まれています。
Iが望むコードが
Public Class ClassToBeTested
Dim isProblem As Boolean
Public Function PassComparisonValues(m_GetValueGetter As IGetValue) As Boolean
Dim dPBar As Single = m_GetValueGetter.GetValue(isProblem)
Return isProblem
End Function
End Class
私は、これは以下でテストするために書かれたコードをテストする
Public Interface IGetValue
Function GetValue(ByRef myBoolOfInterest As Boolean) As Single
End Interface
インタフェース(注 - これは、別のプロジェクトです)。私が欲しいもの
public void MethodToTest()
{
// Arrange
// System Under Test
ClassToBeTested myClassToBeTested = new ClassToBeTested();
// Construct required Mock
Mock<IGetValue> myMock = new Mock<IGetValue>();
bool isProblem = true;
myMock.Setup(t => t.GetValue(ref isProblem));
// Act
isProblem = myClassToBeTested.PassComparisonValues(myMock.Object);
// Assert
Assert.That(isProblem, Is.EqualTo(true));
}
はClassToBeTestedにisProblemの内容を制御できるようにすることである、と私はこれが起こっていないことを発見しています。 私は何をしていても偽を含んでいます。
誰かが助けてくれることを願っています。
私は図書館の著者に質問します。 – Max