[英]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.