Objective-C의 단위 코드 테스트에 문제가 있습니다. 시간대에 일광 절약 시간에 대한 정보가 포함되어 있으므로 여름에 테스트를 작성하여 6 월 10 일에 일출이 예상됩니다. 오전 6시 2 분에 발생합니다. 테스트가 통과되면 나중에 DST가 아니고 실패 할 때 테스트를 실행합니다. 왜냐하면 시간대를 가져 오면 일광 절약법이 해제되어 있기 때문입니다.단위 테스트에서 NSTimeZone 문제 해결하기
dst를 켠 상태에서 시간대를 지정하는 방법은 간단하지 않습니까?
나는 시간대 호출을 가로 채기 위해 카테고리를 만들려고 생각하고 있었지만, 어떤 날짜를 조작하고 있는지 모르기 때문에 너무 지저분 해 보인다.
물론 모든 테스트를 작성하여 표준 시간대 설정을 확인한 다음 모든 기대치를 바꿀 수는 있지만 가능한 모든 선택 사항 중 최악의 경우라고 생각됩니다.
내가 관심이 없다는 것은 아니며 테스트가 실행될 때 테스트 될 날짜가 아닌 오늘의 DST 설정을 제공 할 것이라는 점입니다. 그것이 문제이다? 그러나 테스트가 실행될 때마다 GMT로부터의 오프셋이 동일하게 유지 될 수 있으므로 솔루션이 좋은 것으로 판단됩니다. – Rob
@Rob : 오, 죄송합니다. 질문을 잘못 읽었습니다. 나는 UTC를 사용하는 것이 좋은 접근법이라고 생각한다.'daylightSavingTimeOffsetForDate :'와 같은'NSTimeZone' 메쏘드 (보통 시간대가 DST에있을 때 3600을 리턴한다.)를 가지고 놀 수 있고 NSDates에 이것을 추가 할 수있다. 비교할 필요가있는 – dreamlax