클래스 매개 변수를 확인하려고합니다. 테스트중인 코드는 정상입니다. 버그가 테스트 중입니다.개체 매개 변수를 사용하여 Moq 확인
두 가지 방법 모두 시도했지만 두 가지 모두 실패했습니다. 두 번째 매개 변수로 전달 된 객체가 동일한 특성을 가지고에도 불구하고,
this.MockImageResizeFilter.Verify(m => m.Filter(this.UploadedFileData, new ImageFilterOptions()
{
Width = 256,
Height = 256,
}));
항상 실패하는이 :
1 : 여기
내 시도이다. 첫 번째 매개 변수가 정상적으로 확인됩니다.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");
}
);
이 항상 전달이 실패 할 경우에도. 콜백의 Asserts는 실패하지만 예외는 외부 컨텍스트로 전달되지 않으므로 테스트가 항상 성공합니다.
내가 잘못하고있는 것을 찾도록 도와 줄 수 있습니까?
스팟, 덕분에! – rhughes
사용해야하는 구문은 다음과 같습니다.'It.Is ((ImageFilterOptions p) => p.Width == 256 && p.Height == 256)'. 거기에 아무 일반 아니었다 – Nemo1024
제네릭 버전 나를 위해 작동하며 API 워드 프로세서에있다 http://www.nudoq.org/#!/Packages/Moq/Moq/It/M/Is(TValue) - 당신은 구식 버전의 Moq을 사용하고 있습니까? –