Ответ 1
Первая попытка ближе к тому, чего вы хотите достичь.
Причина, по которой это не удается, заключается в том, что Moq (возможно) использует Object.Equals
под обложкой для проверки, если параметр ImageFilterOptions
, с которым был вызван метод, - это тот же экземпляр, что и тот, который вы указали при вызове Verify
.
Для них невозможно быть одним и тем же экземпляром, потому что в Verify
вы создаете new ImageFilterOptions()
.
Вместо того, чтобы выполнять параметр, проверьте этот способ, вы можете использовать синтаксис Moq It.Is
, чтобы предоставить выражение, которое проверяет, что параметр был ожидаемым.
В вашем случае вы хотите проверить, что параметр имеет тип ImageFilterOptions
и что для Width
и Height
установлено значение 256
. Выражение, которое позволяет вам сделать это:
It.Is<ImageFilterOptions>(p => p.Width == 256 && p.Height == 256)
Итак, ваш вызов Verify
может выглядеть так:
this.MockImageResizeFilter.Verify(m => m.Filter(
this.UploadedFileData,
It.Is<ImageFilterOptions>(p => p.Width == 256 && p.Height == 256)));