VS2010中的测试之数据驱动单元测试

发表于:2020-1-22 14:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:指尖流淌    来源:博客园

  当我们同一条测试用例根据不同的输入数据运行多次测试。为了不重复写单元测试代码。vs为我们提供了数据驱动的测试方法,数据源的文件格式可以是csv、xml、SQLServer数据库或者Orcle数据库等。
  我们先来看看我们要被测试的方法:
usingSystem;
namespaceConsoleApplicationUnitTest
{
publicclassUnitTest
{
publicdoubleCalculateTotalPrice(doublequantity)
{
doubletotalPrice;
doubleunitPrice;
unitPrice=16.0;
totalPrice=unitPrice*quantity;
returntotalPrice;
}
}
}
  同样我们也是按照平常的方法创建一个单元测试,如下:
///<summary>
///CalculateTotalPrice的测试
///</summary>
[TestMethod()]
publicvoidCalculateTotalPriceTest()
{
UnitTesttarget=newUnitTest();//TODO:初始化为适当的值
doublequantity=10.0F;//TODO:初始化为适当的值
doubleexpected=160F;//TODO:初始化为适当的值
doubleactual;
actual=target.CalculateTotalPrice(quantity);
Assert.AreEqual(expected,actual);
//Assert.Inconclusive("验证此测试方法的正确性。");
}
  下面我们创建一个测试用例的数据源,打开Excel,创建一个CSV文件。输入如下的数据行。然后保存为.csv文件。
  创建好数据源之后,我们就要转到测试工程中,然后打开测试视图或者测试列表编辑窗口。选中我们要连接的数据源的测试用例,右键属性,然后点击数据连接字符串,它会弹出一个连接向导,选择我们的CSV文件,然后选择刚刚保存的csv文件。选择完成之后,该测试用例的属性就会被使用到:
   
  这时候我们的数据测试文件已经被复制到项目中。
  然后我们看我们的测试函数上已经多加了几个特性。我们重新修改一下单元测试代码:
///<summary>
///CalculateTotalPrice的测试
///</summary>
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV",
"|DataDirectory|\\testData.csv",
"testData#csv",DataAccessMethod.Sequential),
DeploymentItem("TestProject\\testData.csv"),TestMethod()]
publicvoidCalculateTotalPriceTest()
{
UnitTesttarget=newUnitTest();//TODO:初始化为适当的值
//doublequantity=10.0F;//TODO:初始化为适当的值
doublequantity=Convert.ToDouble(this.testContextInstance.DataRow["Quantity"]);
//doubleexpected=160F;//TODO:初始化为适当的值
doubleexpected=Convert.ToDouble(this.testContextInstance.DataRow["ExpectedPrice"]);
doubleactual;
actual=target.CalculateTotalPrice(quantity);
Assert.AreEqual(expected,actual);
//Assert.Inconclusive("验证此测试方法的正确性。");
}
  最后我们运行一下我们的测试用例,结果就是我们看到它在运行结果里面还有每一行数据的运行结果。如果其中一行数据失败,那我们的整体结果就是失败的。我们双击其中一行的结果还能进一步查看它运行的详情。

   上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号