Vous vous y trompez. Vos méthodes de classe doivent accepter une valeur long
qui représente le temps - ils ne doivent pas accepter un TimeZone
. Si vous réfutez vos méthodes pour qu'elles soient découplées du fait qu'elles reçoivent le 'temps' d'un TimeZone
, alors vous pouvez facilement tester vos méthodes sans avoir à faire ce que vous essayez de faire maintenant; vous appelez simplement vos méthodes avec des valeurs prédéfinies long
représentatives d'une heure particulière, plutôt que de les appeler avec un objet TimeZone
dont la valeur par défaut est quelque chose de prédéterminé que vous souhaitez tester.
Vous devez découpler les méthodes qui reçoivent un paramètre 'time' de la source qui fournit cette valeur de temps. En faisant cela, vous pouvez exécuter votre code en utilisant TimeZone
ou l'heure actuelle du système, et vous pouvez tester votre code tout en utilisant des valeurs de temps prédéfinies que vous souhaitez tester.
Allez-y et essayez de refactoriser votre code et voyez si vous pouvez atteindre les capacités désirées - vous devriez être capable de. Revenez avec d'autres questions et nous serons heureux de vous aider!
Bonne chance.
Les threads n'ont pas d'heure actuelle, pas plus que les JVM. – EJP