Я пишу код, который вычисляет дату и время по отношению к текущему времени. Во времена Джоды доступ к этому осуществляется через конструктор (Java), поскольку это неизменяемый объект. Мне нужно иметь возможность имитировать, чтобы new DateTime()
возвращал конкретный постоянный момент времени, чтобы я мог делать разумные тестовые утверждения, но не трогать все остальные методы DateTime.
Это оказывается противно. Grails mockFor(DateTime, true)
не позволяет мне издеваться над конструктором Java, но нет очевидного или удобочитаемого неконструкторского способа получить время во времени Joda.
Единственные доступные варианты, по-видимому, связаны с низкоуровневыми методами JVM, такими как JMockit или насмешка класса EasyMock 3, которые являются болью от Grails. Есть ли простой/прямой способ добиться этого?