NullReferenceException тестирование набора данных в asp.net - PullRequest
1 голос
/ 25 сентября 2011

Я написал трехслойный веб-сайт с одноэлементным хранилищем для доступа к базе данных.Мои репозитории используют набор данных для подключения к базе данных и запроса из нее.
Я хочу протестировать сайт с помощью тестового проекта Visual Studio 2010, но когда я создаю TableAdapter набора данных в репозитории, в тестовом приложении я получил следующую ошибку:

System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.

код работает правильно, когда я использую репозиторий изнутри сайта, но в тестовом приложении я получил эту ошибку.
одно из моих репозиториев, которое я получил с этой ошибкой, следующее:

public sealed class VehicleRepository
{
    private readonly int gateCode;
    private readonly VehicleTableAdapter vehicleSet;
    private readonly VehicleTypeTableAdapter vehicleTypeSet;
    private static VehicleRepository instance;

    private VehicleRepository()
    {
        var configureTable = new ConfigurationTableAdapter();
--->>>      var configuration = configureTable.GetData().ToList();
            if (configuration.Count == 0)
                throw new UserInterfaceException("some message");
            if (configuration.Count != 1)
                throw new UserInterfaceException("some message");
            gateCode = configuration[0].GateCode;
            vehicleSet=new VehicleTableAdapter();
            vehicleTypeSet=new VehicleTypeTableAdapter();
        }

    public static VehicleRepository GetInstance()
    {
        return instance ?? (instance = new VehicleRepository());
    }

    public Vehicle GetVehicleByPlaque(string plaque)
    {
        .....
    }

    private static Vehicle ConvertVehicleRowToVehicle(TransportCo.VehicleRow vehicleRow,TransportCo.VehicleTypeRow vehicleTypeRow)
    {
        ....
    }

    public void SaveOrUpdate(Vehicle vehicle)
    {
        ...
    }

    private static void UpdateVehicle(Vehicle vehicle)
    {
       ...
    }
}

Я получил ошибку в строке --- >>>.кто-нибудь знает проблему?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Одна общая проблема с базами данных и проверка заключается в том, что обычно строка подключения хранится в файле конфигурации веб-сайта. При выполнении тестов файл web.config обычно не работает. Это может легко привести к сценарию, подобному тому, который вы описываете. Поэтому, даже если вы знаете, что он работает на производстве, он ничего не говорит о том, правильно ли настроено соединение в тесте

0 голосов
/ 25 сентября 2011

Я подозреваю, что если разбить эту строку на два шага и посмотреть, что возвращает GetData, вы увидите, что это ноль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...