Убедитесь, что вы соглашаетесь с самим собой, это сервис или предприятие.
Служба, как правило, признается в том, что она использует набор бизнес-единиц для выполнения определенной задачи и сама по себе не поддерживает долговременные данные.
Бизнес-объект - это подразделение в вашей проблемной области, что бы вы концептуально хотели бы сохранить.
Если вы обнаружите, что это сервис, вы должны каким-то образом ввести зависимость при создании службы. Обычно это может иметь конструктор так: общественного MyService (IFileObject)
Когда строится из основной: вара службы = нового MyService (MyRealFile)
Когда строится из Испытательной установки: вара службы = нового MyService (MyMockedFiled)
Если вы обнаружите, что то, что вы тестируете, на самом деле является бизнес-объектом, вам следует избегать зависимости от Entity. Обычно вы делаете это на один шаг назад и строите класс службы между собой и бизнес-объектом.Служба явно передает бизнес-сущности все необходимые данные. В вашем случае это означает, что служба предоставляет сущности все, что она должна изучать, читая файл.
Служба, таким образом, имеет зависимость от файловой системы и может даже использовать другую (выделенную) бизнес-сущность filereader для чтения файла. Вы никогда не захотите, чтобы бизнес-сущности вызывали вызовы зависимостей изгоев, если вы используете их где-то еще в системе. Их код становится связанным с контекстом, чего вы бы хотели избежать. Бизнес должен быть быстрым, дискретным, определенным и отзывчивым.
Ваше единичное испытание должно быть выполнено в службу, которая может получить зависимость путем инъекции. Если вы обнаружите, что вы тестируете блок бизнес-объекта, то вам не хватает уровня обслуживания.
, тогда у вас есть проблема с дизайном, а не насмешливая проблема. –