Нужна ли имитация файловой системы?

1

Я написал некоторую бизнес-логику для работы с файлами, и мне нужно было написать некоторые интеграционные тесты, чтобы проверить, все ли работает нормально. Поскольку у меня было короткое время, я написал просто @BeforeClass и @AfterClass которые создали файлы и удалили их после тестов (я не мог использовать потоки, потому что часть функций заключалась в удалении файлов). Прямо сейчас у меня есть немного больше времени, поэтому мне интересно, было ли мое решение таким плохим из-за отсутствия насмешек? Если да, должен ли я использовать некоторую реализацию java.nio.file.FileSystem или, может быть, TemporaryFolder из JUnit, было бы достаточно, чтобы это считалось правильным тестом?

заранее спасибо

Теги:
unit-testing
mocking

1 ответ

1
Лучший ответ

Это зависит от того, является ли создание и удаление файлов частью логики, которая должна быть проверена, или просто побочным эффектом функциональности.

  1. если он является частью функциональности, его следует издеваться, а Java 7 NIO и java.nio.file.FileSystem - это путь
  2. если это просто побочный эффект, то TemporaryFolder или аналогичная функциональность в порядке
  • 0
    Так что просто чтобы быть уверенным: если я использую внешнюю библиотеку для этих операций, она классифицируется как второй вариант?
  • 0
    Абсолютно. Модульный тест должен смоделировать всех коллабораторов, и вы не хотите тестировать внешнюю библиотеку. Так что в вашем случае это побочный эффект, и тогда проверка не должна быть частью теста.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню