[英]java8 dates in grails 2.5.5 unit testing
我在Java 8中使用grails 2.5.5。为了使新的日期生效,我定义了Java 8日期(ZonedDateTime)与数据库/休眠日期之间的映射。 效果很好,一点问题都没有
这是问题开始的地方: 单元测试 :我有一种使用的方法
Foo.withCriteria{
ge("startDate",foo.startDate)
}
现在的问题是startDate是ZonedDateTime,并且我收到了startDate不是Foo的不存在属性的错误。 使用FindAllBy会遇到相同的问题。
我无法模拟此方法,因为它是私有方法。 如何在单元测试中使用这些Java 8日期?
(如果我提供的信息太少,请问,我可以提供,但是我认为这已经足够了,我想在stackOverflow上尽可能地保持一般性)
每个日期都有不同的格式,因此您必须检查日期是否具有相同的类型和格式。 您的Java 8可能使用java.util.Date和SimpleDateFormatter 。
请检查您的单元测试框架的日期格式,它可能是DateTime格式,因此会导致差异并可能导致您出错。
在以下代码上:
Foo.withCriteria{
ge("startDate",foo.startDate)
}
确保使用具有正确格式的单元测试框架正确初始化了foo.startDate。
您还可以使用其他日期格式,例如:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date convertedCurrentDate = sdf.parse(currentDateText);
这些是使用数据库的非常流行的格式,可以解释为什么
使用FindAllBy会遇到相同的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.