Я хотел бы доказать, что на часть написанного мной кода не влияет часовой пояс по умолчанию (установленный либо как свойство JVM, либо через метод setDefault ()) как часть модульного теста.
Есть ли способ выполнить sh это?
Причина, по которой это не так просто, как установка часового пояса по умолчанию в тесте перед вызовом метода, заключается в том, что я пытаюсь проверить безопасность в условиях гонки. Например, рассмотрим следующее:
Calendar calendar = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
assertEquals(calendar.get(Calendar.DATE), calendar2.get(Calendar.DATE));
Этот тест должен пройти, но что произойдет, если часовой пояс по умолчанию внезапно изменится между двумя вызовами getInstance()
, с GMT на Сингапур, потому что где-то выполняется другой фрагмент кода меняет часовой пояс по умолчанию? Тогда у нас есть ситуация, когда это может произойти. где бы это ни было.