在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)
{
...
}
}
我在——>>>行中得到了错误。有人知道问题所在吗?
我怀疑如果您将这一行分成两步并查看GetData
返回的内容,您将看到它是空的。
数据库和测试的一个常见问题是,连接字符串通常存储在网站的配置文件中。网络。在执行测试时,配置通常不起作用。这很容易导致你所描述的场景。因此,尽管你知道它在生产环境中可以工作但它并没有说明在test