2009-05-19 2 views
1

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

ответ

1

Ну, как я делаю это следующим образом:

Мой уровень данных имеет интерфейс, например, следующим образом:

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:

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

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

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

+0

Где я могу подключить свои теги данных в тесте. – Greens

+0

Большое спасибо. – Greens

+0

У вас не будет контекстов данных, так как вы можете использовать услугу Fake (которая, как правило, будет иметь ваши контексты данных, чтобы вернуть статический результат) – CodeLikeBeaker

Смежные вопросы