繁体   English   中英

使用Excel文件检索数据以进行单元测试C#

[英]Using Excel file to retrieve data for Unit testing c#

我正在编写用于Web服务测试的单元测试。 我已将服务引用添加到C#单元测试解决方案,并开始使用Web服务中的类进行测试。 我还添加了一个Excel文件来提供单元测试值。

以下是关于我之前所做的示例

[DataSource("System.Data.Odbc"
 ,"Dsn=Excel Files;dbq=|DataDirectory|\\TestData.xlsx;defaultdir=C:\\TestData;driverid=1046;maxbuffersize=2048;pagetimeout=5"
 ,"Sheet1$"
 ,DataAccessMethod.Sequential)
 ,DeploymentItem("TestProject1\\TestData.xlsx")
 ,Owner("")
 ,Description("")
 ,TestMethod()]
public void test1()
{
    try
    {
        var Service = new Service.ServiceClient();
        var Cid = testContextInstance.DataRow["CId"].ToString();
        var MNumber = testContextInstance.DataRow["MNumber"].ToString();
        var VID = testContextInstance.DataRow["VID"].ToString();
        var isVisit = new Service.ISVisit()
        {
            CID = Cid,
            MNum = MNumber,
            VCode = VID
        };

    var first = Service.Medis(isVisit).Cast<Service.ISMedi>().FirstOrDefault();
    // Assert
    Assert.AreEqual("12345678", first.Proc.ProcID);
    }
    catch (Exception ex1)
    {
        if (ex1.InnerException != null)
            Debug.WriteLine(ex1.InnerException.Message);
        Assert.Fail(ex1.Message);
    }
}

该test1已通过.Medis()IsVisit是服务中的类。 到现在为止,我在Excel文件中只有一行,并且能够检索数据并对其进行测试。

在此处输入图片说明

但是现在的要求是,如果excel文件中有多行,则单元测试应该遍历每一行并测试每一行以查看通过/失败。

在此处输入图片说明

请帮助我。如何在excel文件的每一行中循环并检查测试结果。如何在c#unitesting中处理这种情况。谢谢

您已经在执行此操作, DataSource属性在源文件中每行运行一次测试。 您的问题是断言结果。

为了解决这个问题,您的excel文件还应该包含行列的某种预期结果 (也许是ProcId ),您将其与行数据一起检索并最后声明:

// ...
var VID = testContextInstance.DataRow["VID"].ToString();
var expectedResult = testContextInstance.DataRow["ExpectedResult"].ToString();
var isVisit = new Service.ISVisit()
{
    CID = Cid,
    MNum = MNumber,
    VCode = VID
};

// ...

Assert.AreEqual(expectedResult, first.Proc.ProcID);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM