数据驱动单元测试实例
作者:网络转载 发布时间:[ 2013/4/28 10:17:24 ] 推荐标签:
我们在对软件做功能测试时,经常需要重复相同的操作过程,但是输入不同的数据来进行测试,也是一个单元测试对应多组测试数据。而一个单元测试中,一个Assert只能做一个判断,如果仅仅因为测试数据不同而重复设计多个相同的测试用例,显然没有人愿意这样做。使用数据驱动测试,能达到一个单元测试执行多组测试数据的目的,还能使操作逻辑和测试数据分离。下面通过实例简单介绍一下这种测试方法,该实例使用excel作为存储测试数据的数据源。
某销售人员每月的工资为底薪加提成,底薪2000,所售产品的单价10元,,当月销量不大于1000时,提成率为0.05,销量超过1000不大于2000时,提成率为0.10,超过2000时提成率为0.15,现在需要计算他每月根据产品销量应发多少工资。设计程序如下:
namespace CalculateSalaryProject
{
public class Program
{
public double GetTotalSalaryBySales(int sales)
{
const double BaseSalary = 2000;
double unitPrice = 10;
double royaltyRate = 0.0;
if (sales <= 0)
{
royaltyRate = 0.0;
}
else if (sales <= 1000)
{
royaltyRate = 0.05;
}
else if (sales <= 2000)
{
royaltyRate = 0.10;
}
else
{
royaltyRate = 0.15;
}
return BaseSalary + unitPrice * sales * royaltyRate;
}
} }
程序设计完毕,对程序功能进行单元测试如下:
using CalculateSalaryProject;
using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace TestProject
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void GetSalaryBySalesUnitTest()
{
Program program = new Program();
double actualSalary = program.GetTotalSalaryBySales(1);
double expectedSalary = 2000.5;
Assert.AreEqual(expectedSalary, actualSalary);
}
}
}
该测试用例只对销量为1时的情况进行了测试,而根据边界值法,需要测试的数据有-1,0,1,999,1000,1001,1999,2000,2001九种,下面用数据驱动的方法覆盖这些数据:
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11