這個代碼是基於這個答案在這裏:https://stackoverflow.com/a/3135677/360211賦值給Moq讀取的輸出參數的值。怎麼樣?
public interface IService
{
void DoSomething(out string a);
}
[Test]
public void Test()
{
var mock = new Mock<IService>();
string expectedValue = "value";
mock.Setup(s => s.DoSomething(out expectedValue));
string actualValue;
mock.Object.DoSomething(out actualValue);
Assert.AreEqual("value", actualValue);
}
分配string expectedValue = "value";
我所看到的,並儘可能的ReSharper而言並不遠需要。但刪除它,斷言失敗!
那麼Moq如何讀取out
參數中的值?
您所連結的回答說:「我猜,起訂量着眼於‘expectedValue’當你調用設定值並記住它。「這是你的方法只會返回你給它的預期值。如果你不給它一個值,它不會返回這個值。 – Chris
@Chris是另一個值使它失敗。我知道它做了什麼,問題是它是如何做到的。 – weston
當你在未初始化的時候運行'expectedValue'和/或'actualValue'的內容時,你會得到什麼。 – gmiley