Q
起訂量和參數傳遞
3
A
回答
2
如果我正確地閱讀你的問題,你似乎有這樣的情況?
public void DoTheCalculation(ICalculator calculator) {
calculator.Calculate(this /* Or any other object */);
}
在這種情況下,你是可以通過使用一個接受謂詞It.Is方法的嘲笑接口的參數斷言:
[TestMethod]
public void DoTheCalculation_DoesWhateverItShouldDo() {
Mock<ICalculator> calcMock = new Mock<ICalculator>();
CalculationParameters params = new CalculationParmeters(1, 2);
params.DoTheCalculation(calcMock.Object);
calcMock.Verify(c => c.Calculate(It.Is<CalculationParameters>(
c => c.LeftHandSide == 1
&& c.RightHandSide == 2));
}
1
對於此模擬對象,您使用.VerifySet()
方法。例如
mockObject.VerifySet(o => o.Name = "NameSetInMyClass");
如果設置不正確,將引發異常。
瞭解更多quick start here。
1
你的問題有點令人困惑,目前還不清楚你最後一句中提到的是什麼對象。
但是,每個Moq包裝器都有一個「Object」屬性,它是您正在模擬的類型。您只需查看該屬性即可訪問它。
var myMock = new Mock<MyObj>();
var myProp = myMock.Object.MyProperty;
相關問題
- 1. 起訂量ReturnsAsync()的參數
- 2. 構造函數的參數不能傳遞接口模擬 - 最小起訂量
- 3. 起訂量:怎麼到傳遞給嘲笑服務的方法的參數
- 4. 起訂量與構造函數參數
- 5. bash腳本變量和參數傳遞
- 6. 在Meteor中傳遞參數。訂閱
- 7. 參數傳遞,但變量的參數
- 8. 起訂量法列表參數
- 9. 起訂量和Url.Content
- 10. 傳遞函數參數不起作用?
- 11. Autofac和WebForms - 傳遞非常量參數,解析參數?
- 12. 傳遞和訪問參數
- 13. 傳遞參數和在JavaScript
- 14. 疑慮和傳遞參數
- 15. 傳遞參數和在JavaScript
- 16. 數組和參考傳遞
- 17. Gridview和傳遞SQL參數
- 18. 參數傳遞和assert_difference
- 19. lapply和傳遞參數
- 20. 傳遞給函數的參數數量?
- 21. 傳遞參數不起作用
- 22. ngRoute傳遞參數不起作用
- 23. MVC傳遞參數不起作用
- 24. 使用起訂量與HttpPostedFileBase和一個其他參數
- 25. 傳遞變量類型,函數參數
- 26. 通過函數參數傳遞變量
- 27. Restler2傳遞隨機數量的參數
- 28. 傳遞可變數量的參數
- 29. 傳遞變量參數的函數
- 30. 數量的參數錯誤傳遞
你經過實際模擬到類或模擬。目的? – 2010-06-04 19:00:12
這就是我想要做的: MyMock.MyMethod(MyObjectINeed); 我如何獲得MyObjectINeed? – zachary 2010-06-04 20:43:18
爲什麼你不只是提及它呢? var myObj = myObjectINeed; MyMock.MyMethod(MyObj中); Assert.That(myObj)!= null。 – womp 2010-06-06 15:50:17