C# 无法在单元测试中检索数据

C# 无法在单元测试中检索数据,c#,unit-testing,C#,Unit Testing,我有一个关于检索数据的问题,这是我试图学习的东西,也是第一次使用它 测试失败的错误:测试方法 TestBusinessLogic.MediaDurationBLTest.OpenModelTest引发异常: 系统。异常:无法检索其他用户的媒体持续时间模型 已更新模型。请刷新并重试 MediaDurationBLTest.cs 这是主要的方法: [TestMethod()] public void OpenModelTest() { Me

我有一个关于检索数据的问题,这是我试图学习的东西,也是第一次使用它

测试失败的错误:测试方法 TestBusinessLogic.MediaDurationBLTest.OpenModelTest引发异常: 系统。异常:无法检索其他用户的媒体持续时间模型 已更新模型。请刷新并重试

MediaDurationBLTest.cs

这是主要的方法:

  [TestMethod()]
        public void OpenModelTest()
        {
            MediaDurationDS mds = new MediaDurationDS();
            PopulateTestDataSet(mds);

            MediaDurationBL target = new MediaDurationBL();
            TestBusinessLogic.BusinessLogic_MediaDurationBLAccessor accessor = new TestBusinessLogic.BusinessLogic_MediaDurationBLAccessor(target);
            //assign accessor to mds
            accessor.mMediaDurationDataSet = mds;

            int modelID = 5514;

            target.OpenModel(modelID);

            Assert.AreEqual(20, mds.Tables.Count, "# of tables retrieved are different");

            //We are creating copy of ProjectMetricData, check if copyTable and original table are same
            //except projectmetrictdata has pf&d and client does not so subtract that.
            int pfanddRows = 2;
            int projectMetricDataRows = accessor.mMediaDurationDataSet.ProjectMetricData.Rows.Count;
            int copiedRows = projectMetricDataRows - pfanddRows;
            if (copiedRows < 0)
                copiedRows = 0;

            Assert.AreEqual(accessor.mMediaDurationDataSet.ClientProjectMetricData.Rows.Count, copiedRows, "project metric data copy not created");

        }

我猜MediaDurationTestDataSet.xml文件中有一个不正确的数据信息,如何检索正确的数据信息?

接受您的异常,您在测试和OpenModel中各执行一次,我想您希望在此访问两次:

在测试设置中:

    MediaDurationDS mds = new MediaDurationDS();
    PopulateTestDataSet(mds);
在开放式模型中:

    mMediaDurationDataSet = new MediaDurationDS();
    mMediaDurationDataLayer.GetModelDetails(mMediaDurationDataSet, modelID);
例外情况是:

无法检索其他用户已创建的媒体持续时间模型 更新了模型


所以,您的PopulateTestDataSet正在访问底层系统,您会得到异常,因为它正在使用。

至少显示堆栈跟踪。GetModelDetails方法内部的某些调用中存在异常。不知道它扔到哪里,因为您使用catch构造将其隐藏。目前解决此问题的唯一方法是调试更多。。另外,您知道您所做的根本不是单元测试吗?当我使用数据集可视化工具查看第mMediaDurationDataSet=new MediaDurationDS;行的数据时,我可以看到3个模型活动数据;,但是,当我调试这一行时,mMediaDurationDataLayer.GetModelDetailsMediaDurationDataSet,modelID;数据变为空。我已发布GetModelDetails方法。它无法进入foreach循环…在查看GetModelDetails后,我应该如何解决此问题?是的…我如何解决此问题?请你解释得更准确些好吗?对不起,我在这里是初学者。查看PopulateTestDataSet并找到关闭连接或释放一些资源的方法。我不知道MediaDurationDS中的代码是什么,我假设它是某个内部类。
    mMediaDurationDataSet = new MediaDurationDS();
    mMediaDurationDataLayer.GetModelDetails(mMediaDurationDataSet, modelID);