Я пытаюсь создать кучу модульных тестов MS Visual Studio для своего n-уровневого веб-приложения, но по какой-то причине я не могу запустить эти тесты и получаю следующую ошибку -
"Ссылка на объект не установлена на
экземпляр объекта "
То, что я пытаюсь сделать, - это тестирование уровня доступа к данным, где я использую класс контекста данных LINQ для выполнения определенной функции и возврата результата, однако в процессе отладки я обнаружил, что все тесты завершаются неудачно, как только они попадают в класс контекста данных LINQ, и это как-то связано со строкой соединения, но я не могу понять, в чем проблема.
Сбой отладки тестов здесь (вторая строка):
public EICDataClassesDataContext() :
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["EICDatabaseConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}
И мой тест выглядит следующим образом:
TestMethod()]
public void OnGetCustomerIDTest()
{
FrontLineStaffDataAccess target = new FrontLineStaffDataAccess(); // TODO: Initialize to an appropriate value
string regNo = "jonh"; // TODO: Initialize to an appropriate value
int expected = 10; // TODO: Initialize to an appropriate value
int actual;
actual = target.OnGetCustomerID(regNo);
Assert.AreEqual(expected, actual);
}
Метод, который я вызываю из DAL:
public int OnGetCustomerID(string regNo)
{
using (LINQDataAccess.EICDataClassesDataContext dataContext = new LINQDataAccess.EICDataClassesDataContext())
{
IEnumerable<LINQDataAccess.GetCustomerIDResult> sProcCustomerIDResult = dataContext.GetCustomerID(regNo);
int customerID = sProcCustomerIDResult.First().CustomerID;
return customerID;
}
}
Таким образом, в основном все происходит сбой после того, как он достигает 1-й строки метода уровня DA и когда он пытается создать экземпляр класса доступа к данным LINQ ...
Я потратил около 10 часов, пытаясь устранить проблему, но безрезультатно ... Я был бы очень признателен за любую помощь!
UPDATE:
Наконец я исправил это !!!! :) Я не знаю почему, но по некоторым причинам в файле app.config соединение с моей базой данных было следующим:
AttachDbFilename = | DataDirectory | \ EICDatabase.MDF
Итак, я просто изменил путь и вместо | DataDirectory | Я положил фактический путь, где мой файл MDF сидит, т.е.
C: \ Users \ 1 \ Documents \ Visual Studio 2008 \ Projects \ EICWebSystem \ EICWebSystem \ App_Data \ EICDatabase.mdf
После того, как я это сделал, все получилось! Но все же немного неясно, в чем проблема ... возможно, неправильный путь к базе данных? Мой web.config проекта ASP.NET содержит | DataDirectory | \ EICDatabase. Путь МДФ, хотя ..