在asp.net中的NullReferenceException测试数据集

本文关键字:测试 测试数据 数据集 NullReferenceException 中的 asp net | 更新日期: 2023-09-27 18:09:32

我已经写了一个3层的网站,它有单一的存储库访问数据库。我的存储库使用数据集连接和查询数据库。
我想使用Visual Studio 2010测试项目测试网站,但当我在存储库中创建数据集的TableAdapter时,我在测试应用程序中得到以下错误:

系统。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)
    {
       ...
    }
}

我在——>>>行中得到了错误。有人知道问题所在吗?

在asp.net中的NullReferenceException测试数据集

我怀疑如果您将这一行分成两步并查看GetData返回的内容,您将看到它是空的。

数据库和测试的一个常见问题是,连接字符串通常存储在网站的配置文件中。网络。在执行测试时,配置通常不起作用。这很容易导致你所描述的场景。因此,尽管你知道它在生产环境中可以工作但它并没有说明在test

中连接是否正确设置