簡體   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