42
我想驗證一個參數是一個類。正在測試的代碼很好。該錯誤在測試中。Moq驗證對象參數
我試過兩種方法,都失敗了。
這裏是我的嘗試:
1:
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
這總是失敗,即使作爲第二個參數傳遞的對象具有等於屬性。第一個參數驗證很好。
2:
this.MockImageResizeFilter.Setup(m => m.Filter(It.IsAny<byte[]>(), It.IsAny<ImageFilterOptions>()))
.Callback<byte[], ImageFilterOptions>((data, options) =>
{
Assert.AreEqual(this.UploadedFileData, data, "data");
Assert.AreEqual(filterOptions.Width, options.Width, "Width");
Assert.AreEqual(filterOptions.Height, options.Height, "Height");
}
);
這總是通過,即使它應該失敗。回調中的斷言失敗,但異常不會傳遞到外部上下文,因此測試總是通過。
你能幫我找到我做錯了什麼嗎?
點上,謝謝! – rhughes
我不得不使用的語法是:It.Is((ImageFilterOptions p)=> p.Width == 256 && p.Height == 256)''。沒有通用的'Is' – Nemo1024
通用版本適用於我,並且在API文檔中http://www.nudoq.org/#!/Packages/Moq/Moq/It/M/Is(TValue) - 您是否使用過時版本的Moq? –