Тестирование классов Linqto SQL - PullRequest
1 голос
/ 19 мая 2009

Как мне выполнить модульное тестирование моего кода с LTS Datacontext. Я получаю сообщение об ошибке при тестировании, у меня много Datacontexts, и ручное добавление строки подключения - это боль, любые предложения.

1 Ответ

1 голос
/ 19 мая 2009

Ну, вот как я это делаю:

Мой уровень данных имеет интерфейс, такой как:

public class MyDataLayer : iMyDataLayer
{
  public string GetMyData(parameters)
  {
    return myQueryValue;
  }

}

public interface iMyDataLayer
{
  public string GetMyData(parameters);
}

Теперь в моем конструкторе для основной базы кода (бизнес-логика) у меня будет параметр для передачи в интерфейсе для уровня данных:

private iMyDataLayer DataLayer;

public class MyBusinessLogic(iMyDataLayer dataLayer)
{
   DataLayer = dayaLayer
}

public string GetMyData(parameters)
{
  return DataLayer.GetMyData(parameters)
}

Теперь я могу создать «поддельную» службу данных в моем проекте TDD:

public class FakeDataLayer : iMyDataLayer
{
      public string GetMyData(parameters)
      {
        return "Some Default Value or Object";
      }

}

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

Теперь, если вы не будете работать с реальными данными здесь. Однако если вы настраиваете поддельные объекты с действительными / недействительными данными, вы можете проверить свою бизнес-логику таким образом, не подключаясь к базе данных.

Надеюсь, это поможет. Дайте мне знать, если вам нужно что-то прояснить.

...