? (user_obj.updated_at)시간 updated_at RSpec에 단위 테스트을 비교 한 동안 current_updated_time.eql 경우
일치하지 않는. rspec 실행 시간 및 시간대가 올바르게 일치하지 않습니다.
? (user_obj.updated_at)시간 updated_at RSpec에 단위 테스트을 비교 한 동안 current_updated_time.eql 경우
일치하지 않는. rspec 실행 시간 및 시간대가 올바르게 일치하지 않습니다.
이것은 테스트 스위트에서 일반적으로 발생하는 문제이며, 다행스럽게도 일반적인 해결책이 있습니다.
비교 된 시간 소인에서 마이크로 초를 트리밍 할 수 있습니다 (RDBMS 공급 업체와 호스트 응용 프로그램 언어가 가장 짧은 시간 측정에서 다소 다를 수 있으므로).
이러한 세부 정보를 처리하는 데 도움이되는 timecop gem을 사용해 볼 수 있습니다. 근본적으로 현재 시간을 고정시키고, 언제든지 관련 데이터 또는 비교 값을 작성하고, 그 값을 사용자의 기대치에 사용할 수 있습니다.
마지막으로 정확한 시간대와 날짜 또는 시간 데이터 유형을 비교하고 있는지 확인하십시오. 루비의 시간 및 날짜 클래스에 대한 문서를 살펴보고 레일즈를 사용하는 경우 TimeWithZone 클래스를 살펴볼 수도 있습니다. 표준 시간대 비교에서 문제가 자주 발생하기 때문에 이러한 비교에 항상 일관된 데이터 유형을 사용하고자합니다. 즉, Date.today
을 Time.now
또는 1.day.ago
과 비교하면 다른 시간대를 사용할 수 있습니다. 이 주제에는 많은 블로그 게시물이 있으므로 Ruby에서 Time 값을 비교하는 방법에 대해 읽어 보시기 바랍니다.
Ruby 콘솔을 열고 시간 값 생성을위한 여러 방법론을 시험해 봄으로써 GMT를 사용하는 표현식이 현재 시스템 시간대로 기본 설정된다는 느낌을 얻을 수 있습니다. 궁극적으로 make 테스트 스위트 전체에서 시간 값을 생성하기 위해 하나의 일관된 데이터 유형 및 패턴 (즉, 동일한 시간대)을 사용해야합니다.