我写了一个名为ErrorHandingFiniteStateMachine
的类,基本上做了类似的事情:
https://developers.google.com/safe-browsing/developers_guide_v3#RequestFrequencyHashes
基本上它有一个名为ErrorHandlingFiniteStateMachine.update()
的函数,当调用者类收到错误时将调用它。然后它将更新错误状态,这取决于:
现在我的问题是:
mockito
中经过的时间,因为时间可能很长,例如几小时,我绝对不想等几个小时才能完成单元测试。修改
正如大家所指出的,我使用System.currentTimeMillis
来记住当前的时间戳。但顺便说一句,单元测试不应该知道有关实现的详细信息,对吗?
我的解决方案
我最终将System.currentTimeMillis()
包裹在ErrorHandlingFiniteStateMachine.getCurrentTimestamp()
中,并将其设为包私有(无修饰符),因此可以在TestErrorHandlingFiniteStateMachine
中访问它。然后我使用mockito
spy
来模拟ErrorHandlingFiniteStateMachine.getCurrentTimestamp()