Стандартный ответ - изменить класс, чтобы вы могли смоделировать зависимость. Обычно это делается путем внедрения вашего источника данных в качестве интерфейса в ваш класс.
например. У вас может быть класс, который действует как ниже
class John
{
public John() { }
public void Load()
{
// call to db in here e.g SQLCommand
}
}
Загрузка зависит от SQLCommand, поэтому вам всегда нужно будет вызывать дБ для этого
Если вы внедрите интерфейс источника данных, у вас будет больше гибкости
1010 *, например *
class John
{ IDataSource _db;
public John(IDataSource db)
{
_db = db;
}
public void Load()
{
_db.Load("John"); // IDataSource can now be either SQL
//or hardcoded or what ever much easier to test
}
}
<ч />
Теперь, если вы не можете / не будете этого делать, вы должны рассматривать этот тест как интеграционный тест. Как насчет того, чтобы настроить данные для него. например вставьте строку, которую вы хотите прочитать. Затем верните данные в исходное состояние. Обратной стороной этого является то, что ваш тест будет медленным и хрупким.