У меня есть некоторый код, который является результатом моих первых усилий по созданию TDD для реального рабочего проекта.Пытаясь выполнить начальную загрузку, я создал модель сущности и тесты, которые подтверждают наличие записей данных, необходимых для материализации отчета, первой конкретной цели, которую я идентифицировал.как будто в нем есть ошибка, и YET тест все еще проходит .
Вот фрагменты: Ошибка (я думаю) - это отсутствующий вызов AddObject ().
Если у кого-то есть терпение / желание посмотреть на все это, я вставлю его в сущность .
Тестовый код:
TestFactory target = new TestFactory(@"data source=biz2\da;initial catalog=DirectAgents;integrated security=True;");
DirectAgentsEntities actual = target.Create();
Assert.IsNotNull(actual);
var advertisers = actual.Advertisers.OrderBy(c => c.Id).ToList();
Advertiser advertiser1 = advertisers.ElementAt(0);
Assert.AreEqual("Advertiser 1", advertiser1.Name);
Код реализации:
public TestFactory(string connectionString)
{
this._connectionString = connectionString;
}
public DirectAgentsEntities Create()
{
CleanUp(this.DirectAgentsEntities);
AddAdvertiserClients();
var db = this.DirectAgentsEntities;
return db;
}
private void AddAdvertiserClients()
{
var db = this.DirectAgentsEntities;
Advertiser a;
a = new Advertiser
{
Name = "Advertiser 1",
Client = db.Clients.First(c => c.Name == "Client 1")
};
db.SaveChanges();
}
private DirectAgentsEntities DirectAgentsEntities
{
get
{
string entityConnectionFormat = @"metadata=res://*/Formss.AB2.Model.ABModel.csdl|res://*/Formss.AB2.Model.ABModel.ssdl|res://*/Formss.AB2.Model.ABModel.msl;provider=System.Data.SqlClient;provider connection string=""{0};multipleactiveresultsets=True;App=EntityFramework""";
string entityConnectionString = String.Format(entityConnectionFormat, _connectionString);
return new DirectAgentsEntities(entityConnectionString);
}
}
private string _connectionString;
Как можно добавить строку без вызова AddObject?Должен ли я присмотреться к своему коду для обнаружения незначительной ошибки?