반응형
특정 SPTimeZone 인스턴스 생성 또는 가져 오기
Microsoft.SharePoint.SPTimeZone
다음과 같이의 특정 인스턴스를 만드는 가장 편리한 방법은 무엇입니까?
SPTimeZone utc = SPRegionalSettings.GlobalTimeZones
.OfType<SPTimeZone>()
.FirstOrDefault(tz => tz.Information.Bias == 0
&& tz.Information.DaylightBias == 0);
이 해킹이 내가 얻을 수있는 최고의 해킹인가요?
단위 테스트를 위해 코드의이 부분을 조롱하고 항상 UTC를 반환하도록 강제하고 싶기 때문에 이것은 특히 문제입니다. 이 속성 GlobalTimeZones
은 HttpContext.Current
실제 요청 에 따라 달라지는 것 같습니다 . 내 단위 테스트에없는 전제 조건 ...
NB : System.TimeZoneInfo
제 3 자 어셈블리가 SPTimeZone을 사용하도록 강요 한다는 것을 알고 있습니다 .
토론을 중단하기 위해 마침내이 질문에 스스로 답하기로 결정했습니다.
이 짧은 답변에서 수집하고 싶은 의견에는 몇 가지 유용한 솔루션이 있습니다.
- 파사드 / 어댑터 소개
- MS Fakes 또는 기타 프레임 워크를
- SPTimeZone에 대한 가짜 액세스
- 가짜 HttpContext 만들기
- 위의 질문에서 설명한 해킹으로 이동하십시오 ...
필자는 MSFakes를 사용하여 전체 타사 호출을 shim (어쨌든 그 동작을 테스트하고 싶지 않았기 때문에)하고 메서드에서 사용하는 SPTimeZone의 모든 속성을 shim하기로 결정했습니다. 안타깝게도 어댑터를 도입하는 것은 (내부) API를 보존해야했기 때문에 나에게 선택 사항이 아니 었습니다.
참고 URL : https://stackoverflow.com/questions/30391153/create-or-get-specific-sptimezone-instance
반응형
'development' 카테고리의 다른 글
Entity Framework로 작업 할 때 좋은 디자인 사례는 무엇입니까? (0) | 2020.10.22 |
---|---|
순전히 기능적인 맵과 세트의 통계적 성능 (0) | 2020.10.22 |
Android에서 알림에 버튼을 추가하는 방법은 무엇입니까? (0) | 2020.10.22 |
Android SoundPool은 얼마나 나쁜가요? (0) | 2020.10.22 |
여러 github 프로젝트에 동일한 배포 키 사용 (0) | 2020.10.22 |