2016-08-29 2 views
0

Я хотел бы проверить поведение функции, которая имеет разные типы поведения, в зависимости от того, в которой она выполняется, есть ли способ определить/смоделировать дату в specs2?Как я могу проверить событие, вызванное датой в будущем, в specs2

Пример, как бы проверить следующее?

def dateDependingFunction:Boolean = currentDate > aSetDate 

Я хотел бы, чтобы иметь возможность написать что-то вроде

"My Date depending functions" should{ 
// here somehow set a date fulfilling `currentDate > aSetDate` 
"return true" in { 
    dateDependingFunction:Boolean must beBeEqualTo(true) 
} 

// here somehow set a date fulfilling `currentDate < aSetDate` 
"return false" in { 
    dateDependingFunction:Boolean must beBeEqualTo(false) 
} 
} 
+1

Вы shiuld использовать сервис, который retutn текущее время и дразнить его в тестах , – talex

+0

любой фрагмент кода? – John

+1

В вашей 'dateDependingFunction' где-нибудь вы можете увидеть что-то вроде' System.timesCurrentMill() 'вы должны заменить его' timeService.getCurrentTime() '. В вашем тесте вы можете использовать mock-библиотеку, например 'Mockito', и инициализировать' timeService' с макетом. Я никогда не делал этого с вашей тестовой рамкой, поэтому я не могу дать вам ответ. Только намекайте, как это можно достичь. – talex

ответ