Moq (3.0+) を使用してout
/パラメータを割り当てることは可能ですか?ref
の使用を検討しましたCallback()
が、ジェネリックに基づいているため、ref パラメータはサポートされていません。また、パラメータの入力にAction<>
制約 ( ) を設定することも望ましいですが、コールバックでそれを行うこともできます。It.Is
ref
Rhino Mocks がこの機能をサポートしていることは知っていますが、私が取り組んでいるプロジェクトではすでに Moq が使用されています。
ベストアンサー1
「out」については、次の方法がうまくいくようです。
public interface IService
{
void DoSomething(out string a);
}
[TestMethod]
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(expectedValue, actualValue);
}
Moq は、Setup を呼び出すときに 'expectedValue' の値を調べて、それを記憶しているのではないかと思います。
についてはref
、私も答えを探しています。
次のクイックスタート ガイドが役に立ちました。https://github.com/Moq/moq4/wiki/クイックスタート