0
我有一個模擬對象,其方法我試圖通過拋出一個異常時執行,爲一個特定的單元測試用例使用Moq框架。VerifyAll()與拋出<T>()在Moq
var mockMySvc = new Mock<IMySvc>();
mockMySvc
.Setup(x=>x.SomeMethod())
.Throws<Exception>();
//Execution of some code
//At the assertions
mockMySvc.VerifyAll();
在運行時,該代碼抱怨沒有得到滿足的mockMySvc
所有的expections儘管被拋出的異常。我是否錯過了某些東西,或者.VerifyAll()
方法不適用於.Throws()
功能。
在'someMethod()'的範圍內,我有一個try catch塊。該嘗試需要拋出一個異常的catch塊,這就是我通過設置/拋出我的代碼實現。我的代碼不會返回異常。你所聲稱的是假設該方法會拋出異常。 –
我現在明白了。你真的執行'SomeMethod'方法嗎?看看這裏:http://www.syntaxsuccess.com/viewarticle/mock-exceptions-using-moq – FCin
是的,這就是我想要做的 - 模擬一個異常。我想我不應該驗證通過VerifyAll()拋出的異常,而是驗證是否記錄了正確的異常。謝謝!這有助於理解我在邏輯上做錯了什麼。 –