c#中测试数据集时出现错误
本文关键字:错误 数据集 测试 测试数据 | 更新日期: 2023-09-27 18:14:46
我用ASP编写了一个项目。NET和c#使用数据集连接到数据库。我想测试我的代码,当我创建一个单元测试我的类使用数据集,我得到以下错误:
Test method Test.CommodityRepositoryTest.GetCommoditiesTest threw exception:
System.NullReferenceException: Object reference not set to an instance of an object.
at Terminal.Database.TransportCo.TransportCoTableAdapters.ConfigurationTableAdapter.InitConnection() in TransportCoDataSet.Designer.cs: line 12259
at Terminal.Database.TransportCo.TransportCoTableAdapters.ConfigurationTableAdapter.get_Connection() in TransportCoDataSet.Designer.cs: line 12144
at Terminal.Database.TransportCo.TransportCoTableAdapters.ConfigurationTableAdapter.InitAdapter() in TransportCoDataSet.Designer.cs: line 12227
at Terminal.Database.TransportCo.TransportCoTableAdapters.ConfigurationTableAdapter.get_Adapter() in TransportCoDataSet.Designer.cs: line 12133
at Terminal.Database.TransportCo.TransportCoTableAdapters.ConfigurationTableAdapter.GetData() in TransportCoDataSet.Designer.cs: line 12290
我必须提到我使用单例存储库,但它不会改变错误中的任何内容。
有人知道吗?
这是我的代码和测试:
public List<Commodity> GetCommodities()
{
var commoditySet=new CommodityTableAdapter();
var commoditys = commoditySet.GetCommdity().ToList();
if (commoditys.Count() == 0)
throw new UserInterfaceException("هیچ کالایی در سیستم ثبت نشده است");
var commoditiesName = new List<Commodity>();
for (int i = 0; i < commoditys.Count(); i++)
commoditiesName.Add(ConvertcommodityRowTocommodity(commoditys[i]));
return commoditiesName;
}
[TestMethod()]
public void GetCommoditiesTest()
{
var target = CommodityRepository.GetInstance(); // TODO: Initialize to an appropriate value
var expected = new List<Commodity> {new Commodity() {HSCode = "323423", ID = 19}}; // TODO: Initialize to an appropriate value
List<Commodity> actual = target.GetCommodities();
Assert.AreEqual(expected[0].ID, actual[0].ID);
//Assert.Inconclusive("Verify the correctness of this test method.");
}
您的输入有歧义
var commoditys = commoditySet.GetCommdity().ToList();
使用显式类型代替
Object commoditys = commoditySet.GetCommdity().ToList();
,那么您将收到适当的调试错误。