Насмешка файловой системы

Если мои модульные тесты полагаются на файловую систему, и я должен дразнить это, что лучший способ состоит в том, чтобы пойти об этом?

Спасибо

9
задан Torbjørn 15 February 2010 в 14:42
поделиться

3 ответа

В основном у вас есть два варианта: либо абстрагировать всю логику, связанную с файловой системой, за IFileSystemService , либо использовать Stubs от Microsoft, что является

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

3
ответ дан 4 December 2019 в 14:28
поделиться

Файловая система является отличным примером того, как TDD может привести вас к лучшему и более гибкому дизайну. Часто при взаимодействии с файловой системой можно выполнять чтение и запись файлов с помощью Streams или TextWriters вместо фактических файлов.

Это все абстрактные типы, и так легко издеваться.

Теперь у вас есть более гибкий API, потому что он не тесно связан с файловой системой, но по-прежнему поддерживает операции с файлами.

-121--3329677-

Структуры предназначены исключительно для продвинутых пользователей (вместе с out и ref).

Да, структуры могут обеспечить высокую производительность при использовании ref, но вы должны видеть, какую память они используют. Кто управляет памятью и т.д.

Если вы не используете ref и выходы со структурами, они не стоят того, если вы ожидаете некоторые неприятные ошибки: -)

-121--1647273-

Это Требуется: интерфейсы файловой системы и реализация в .NET могут быть полезны

1
ответ дан 4 December 2019 в 14:28
поделиться

Файловая система - отличный пример того, как TDD может привести вас к лучшему и более гибкому дизайну. Часто, когда вы взаимодействуете с файловой системой, вы можете иметь дело с чтением и записью файлов, используя Streams или TextWriters вместо фактических файлов.

Все это абстрактные типы, поэтому их легко высмеять.

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

9
ответ дан 4 December 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: