Относительно безопасности потоков: Безопасность потоков не является проблемой, если только несколько потоков в одном приложении не будут одновременно ссылаться на один и тот же экземпляр вашего класса. Если ваш класс не содержится на сервере вне процесса, несколько приложений не смогут одновременно ссылаться на один и тот же экземпляр. Поэтому конфликты, которые вы, скорее всего, увидите, будут вызваны нарушениями общего доступа к файлам, а не проблемами многопоточности (другими словами, разные экземпляры класса пытаются прочитать и написать один и тот же файл ). И да, вы должны разработать свой код для надлежащего обмена файлами.
Один из способов сделать тестируемый модуль класса состоит в том, чтобы предоставить классу поток в конструкторе вместо того, чтобы класс обращался к файлу напрямую. Затем модульный тест может предоставить поток памяти, например, вместо предоставления потока файлов.