development

SetupSet ()는 더 이상 사용되지 않습니다.

big-blog 2020. 12. 12. 12:09
반응형

SetupSet ()는 더 이상 사용되지 않습니다. 무엇 대신에?


나중에 사용하기 위해 내 필드에 set 속성을 저장하기 위해 setter에서 콜백을 생성하기 위해 Moq를 사용하고 싶다고 가정 해 보겠습니다. (논문 된 예-그러나 질문의 ​​요점에 도달합니다.) 다음과 같이 할 수 있습니다.

myMock.SetupSet(x => x.MyProperty).Callback(value => myLocalVariable = value);

그리고 그것은 잘 작동합니다. 그러나 Intellisense에 따르면 SetupSet은 더 이상 사용되지 않습니다. 그러나 그것은 대안으로 사용해야 할 것을 말하지 않습니다. moq가 지원 필드로 속성을 자동 연결하는 SetupProperty를 제공한다는 것을 알고 있습니다. 그러나 그것은 내가 찾고있는 것이 아닙니다. 설정 값을 내 변수로 캡처하고 싶습니다. 더 이상 사용되지 않는 방법을 사용하여 어떻게해야합니까?


Moq 버전 3.0.204.1을 사용하고 있으며 사용 SetupSet하지 않는 것으로 표시되지 않았습니다. 그러나 SetupSet.NET 에는 몇 가지 과부하가 있습니다 MockLegacyExtensions. 클래스에 SetupSet정의 된 사용 및 사용 피할 수 있습니다 Mock.

차이는 미묘 당신은 사용할 필요 Action<T>SetupSet반대, 매개 변수 Func<T, TProperty>.

아래 호출은 더 이상 사용되지 않는 오버로드를 호출합니다.

myMock.SetupSet(p => p.MyProperty = It.IsAny<string>()).Callback<string>(value => myLocalVariable = value);

트릭은를 사용 It.IsAny<string>하는 것인데, 이는 모든 값으로 setter 호출을 가로 챌 것입니다.

참고 URL : https://stackoverflow.com/questions/2950318/setupset-is-obsolete-in-place-of-what

반응형