2016-10-05 4 views
0

나는 java 8과 함께 grails 2.5.5를 사용하고있다. 새로운 날짜와 함께이 작업을하기 위해 java 8 날짜 (ZonedDateTime)와 데이터베이스/최대 절전 날짜 사이의 매핑을 정의했다. . 이것은 모든java8의 날짜는 grails 2.5.5 단위 테스트

에서, 아무 문제가 잘 작동하지 않는 문제가 시작되는 여기 : 단위 테스트 : 나는 지금

Foo.withCriteria{ 
    ge("startDate",foo.startDate) 
} 

문제를 사용하는 방법의 startDate가 ZonedDateTime 점이다 가지고 내가 얻을 startDate는 Foo의 존재하지 않는 속성입니다. FindAllBy를 사용하면 같은 문제가 발생합니다.

나는이 방법을 모의 할 수 없다. 개인적인 방법이기 때문이다. 어떻게 내가 단위 테스트에서 일하는 자바 8 날짜를 얻을 수 있습니까?

각 날짜가 다른 형식을 그렇게 가지고

+0

Java 8 날짜와 데이터베이스/최대 절전 날짜 간의 매핑을 제공 할 수 있습니까? 자바 8의 날짜를 말할 때 당신은 java.time.LocalDateTime을 사용하고 있는가? 또한 오류 메시지를 제공 할 수 있습니까? – Joe

+0

ZonedDateTime이 경우 전체 오류 스택 또는 오류 이름 만 원하십니까? – miThom

+0

grails.gorm.default.mapping = { "사용자 유형"(유형 : org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTime, 클래스 : java.time.LocalDateTime) "사용자 유형" org.jadira.usertype.dateandtime.threeten.PersistentZonedDateTime, 클래스 : java.time.ZonedDateTime) } ' – miThom

답변

0

을 (난 그냥 내가 제공 할 수있는 질문,하지만이 충분 것이라고 생각 나는 유래에 대해 가능한 한 일반적으로 유지하고 싶어, 너무 적은 정보를 준 경우) 날짜가 동일한 유형 및 형식인지 확인해야합니다. Java 8은 아마도 java.util.DateSimpleDateFormatter을 사용하고있을 것입니다.

단위 테스트 프레임 워크 날짜 형식을 확인하십시오. DateTime 형식 일 수 있으므로 차이가 발생하여 오류가 발생할 수 있습니다. 다음 코드에

:

Foo.withCriteria{ 
    ge("startDate",foo.startDate) 
} 

는 foo.startDate가 올바른 형식으로 단위 테스트 프레임 워크를 사용하여 제대로 초기화되었는지 확인합니다. 또한 같은 다른 날짜 형식을 사용할 수 있습니다

: FindAllBy를 사용

가 동일한주는 이유

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 
Date convertedCurrentDate = sdf.parse(currentDateText); 

또는 ISO 8601 DateTime Format

이 설명 할 수있는 데이터베이스를 사용하여 매우 인기있는 형식은 문제.

+0

나는 그것이 다른 방향이라고 생각한다. 이 예제에서는 (나는 질문을 업데이트 할 것이다) 테스트 프레임 워크가 알지 못하는 ZonedDateTime을 사용했다 (java.util.date를 알고있다) – miThom