VS2010中的自动化测试(3)——数据驱动的单元测试

有时,我们会对同一条测试用例根据不同的输入数据运行多次测试。为了不重复写单元测试代码,VS允许我们的每一条单元测试函数都可以连接自己的数据源,数据源的文件格式可以是CSV、XML、SQL Server数据库或者Oracle数据库等。

下面我继续使用上次进行单元测试的函数,该函数体如下:

public double CalculateTotalPrice(double quantity)
{
double totalPrice;
double unitPrice;

unitPrice = 16.0;

totalPrice = unitPrice * quantity;
return totalPrice;
}

 

然后按照平常那样创建一个单元测试之后,修改测试代码如下:

[TestMethod()]
public void CalculateTotalPriceTest()
{
Class1 target = new Class1();
double quantity = 10F;
double expected = 160F;
double actual;
actual = target.CalculateTotalPrice(quantity);
Assert.AreEqual(expected, actual);
}

 

现在来开始创建测试用例的数据源,我直接就用一个CSV文件就行了。打开Excel,输入数据如下,然后保存为.csv文件。

Capture

 

创建好数据源之后,我们重新转到测试工程,然后打开Test View或者Test List Editor窗口,选中我们要连接数据源的测试用例,右键属性,然后点击Data Connection String属性,它会弹出一个连接向导,选择CSV文件,然后选择刚刚保存的csv文件。选择完成之后,该测试用例的属性如下图所示:

Capture2

 

然后会注意到我们之前的测试函数上多加了几个Attribute。现在我们重新修改一下单元测试代码:

[DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", 
"|DataDirectory|\\test.csv", "test#csv",
DataAccessMethod.Sequential),
DeploymentItem("TestProject1\\test.csv"),
TestMethod()]
public void CalculateTotalPriceTest()
{
Class1 target = new Class1();
double quantity = Convert.ToDouble
(this.testContextInstance.DataRow["Quantity"]);
double expected = Convert.ToDouble
(this.testContextInstance.DataRow["ExpectedPrice"]);
double actual;
actual = target.CalculateTotalPrice(quantity);
Assert.AreEqual(expected, actual);
}

 

最后我们运行一下这个测试用例,结果如下所示,我们可以看到在它的运行结果里面还有每一行数据的运行结果,如果其中有一行数据Fail,那我们的整体结果就是Fail的。我们双击其中一行的结果还能进一步查看它运行的详情。

Capture3

 

 

相关文章:

VS2010中的自动化测试(5)——Web性能测试(2)

VS2010中的自动化测试(4)——Web性能测试(1)

VS2010中的自动化测试(2)——单元测试

VS2010中的自动化测试(1)——VS2010中的测试管理工具

 

 

 

转载于:https://www.cnblogs.com/heqichang/archive/2011/10/08/2202441.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值