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