Возможно, вы не захотите менять свой класс, но это именно то, что вы должны делать.Если вы хотите провести надлежащее тестирование, вам нужно убедиться, что код действительно тестируемый для начала.
Существует простое решение, которое не требует больших изменений, просто добавьте новый параметрлибо конструктору, либо методу, который вы действительно хотите проверить и передать ему фактический путь.
Ваш код может выглядеть следующим образом:
public SomeClass
{
public SomeClass(string baseLocation)
}
тогда, когда вы создаете его экземплярВы можете просто сделать что-то вроде
var basePath = AppDomain.CurrentDomain.BaseDirectory;
var someClass = new SomeClass(basePath);
Теперь это позволяет вам вводить путь откуда угодно, включая тесты.Если вам нужен тестируемый код, вам нужно удалить такие зависимости.DateTime.Now - это еще один пример, который можно внедрить таким образом.
Еще одно преимущество этого метода заключается в том, что вам не нужно беспокоиться о том, чтобы что-то подделать, и ваш тестовый код становится очень простым и действительно поддерживаемым