Я использую: MSTest
, Entity Framework 6
и Moq
Я пытаюсь изучить TDD с нашей уже существующей структурой сущностей asp. net. Сейчас я работаю в нашем веб-интерфейсе, я создал тестовый проект и класс fre sh и пытаюсь написать тест, чтобы посмотреть, смогу ли я вернуть хотя бы одно значение. Поэтому в некоторых местах мне, очевидно, приходится писать тесты для кода, который уже существует.
Здесь я не могу понять, если / как настроить мой тестовый проект, класс или метод (не уверен, что нужно настроить) для тестирования этого метода
[HttpGet]
[ResponseType(typeof(IEnumerable<TimeZoneDTO>))]
[Route("api/timezone")]
public IHttpActionResult GetTimeZones()
{
var _out = new IEnumerable<TimeZoneDTO>();
using (var db = new Entities())
{
_out = from x in db.Timezones
orderby x.UTCOffSet descending
select new TimeZoneDTO() {
Caption = x.Name,
Id = x.Abbreviation
};
}
return Ok(_out);
}
проблема в том, что using (var db = new Entities())
зависит от именованной строки конфигурации базы данных в файле web.config проекта контроллера.
public partial class Entities : DbContext
{
public Entities(): base("name=Entities") {}
...
}
Какие у меня варианты здесь? Есть ли способ заставить Moq справиться с этим или мне нужно как-то обновить тестовый проект? Чего я не хочу делать (на данный момент), так это переделать что-то, что заставит меня изменить другие основные части приложения.