ACCESS[转]VS2010中的单元测试

正文转自:http://zxianf.blog.163.com/blog/static/30120701201101011757499/

 

在VS2010中,单元测试的成效很强大,使得建立单元测试和编辑单元测试代码,以及管理和运转单元测试都变得简单起来,通过个人访问器可以对私家方法也能开展单元测试,并且接济数据驱动的单元测试。

1、建立单元测试项目

1.1、从被测试代码生成单元测试

1)实例:创建VC#形式下的控制台应用程序,工程名为CUnitTest

ACCESS 1

2)输入不难的加、减、乘、除函数代码,如下图所示

ACCESS 2

3)可按如下步骤建立单元测试

    (1)在Add方法体内,单击鼠标右键,在菜单中选取”成立单元测试”,

ACCESS 3

(2)在产出的”创制单元测试”界面中,Add方法被自动勾上,表示要为那个主意创设单元测试代码的着力框架,单击确定按钮

ACCESS 4

(3)点击确定后,在新建测试项目中,输入必要创制的单元测试的新品类的名称,然后单击”成立”按钮,则自动创立一个新的单元测试代码项目。

ACCESS 5

(4)在”解决档案资源管理器”中得以看看多了一个”AddTest”项目,可以见见”AddTest”项目引用了被测项目标程序集,和单元测试框架Microsoft.VisualStudio.QualityTools.UnitTestFrame,并且自动发出五个C#代码文件AssemblyInfo.cs和ProgramTest.cs

ACCESS 6

(5)ProgramTest.cs的代码如下图所示,从图中可以见见,自动发出了一个”ProgramTest”类,并应用[TestClass()]标识为一个单元测试类,以及一个”AddTest”测试方法,。并用[TestMethod()]标识。

ACCESS 7

(6)ProgramTest.cs代码文件详讲

[TestMethod()]:表明了以下代码是一个测试用例

Int a = o; // TODO: 初步化为适龄的值

int b = 0; // TODO: 初步化为方便的值

那两句是被测函数的输入参数,须求大家去修改它的值,也就是我们输入测试用例的地方。

double expected = 0; // TODO: 起始化为适龄的值

double actual;

      那两句话浅显易懂,前一句话是概念了期望值和对它举办初叶化,后一句话是概念了实际值。默许

Assert.AreEqual(expected, actual);

Assert在此间可以领略成断言:在VSTS里做单元测试是依照断言的测试。

默许代码中Assert.Inconclusive
注明那是一个未经证实的单元测试。在实际的次第中能够注释掉。

1.2、添加单元测试项目

(1)别的一种单元测试方法是单身添加单元测试项目,在化解方案中添加一个新的档次,选取品连串别为”测试项目”,

ACCESS 8

(2)单击确定后,自动发出一个新的单元测试项目,在”解决方案资源管理器”中可观看新添加的测试项目”TestProject2″。比较”TestProject2″和”AddTest”可窥见,”TestProject2″少了对被测试项目程序集的引用,仅仅引用了单元测试框架的DLL”Microsoft.VisualStudio.QualityTools.UnitTestFrame”

 

2、编写测试方法

单元测试的中坚措施是调用被测代码的函数,输入函数的参数值,获取重临结果,然后与预期测试结果举办比较,倘使相等则以为测试通过,否则认为测试不通过。

1、Assert类的使用

Assert.Inconclusive()    表示一个未表明的测试;

Assert.AreEqual()         测试指定的值是还是不是等于,即使相等,则测试通过;

AreSame()            用于讲明指定的三个目的变量是指向平等的目的,否则认为是谬误

AreNot萨姆e()        用于阐明指定的三个目标变量是指向分裂的靶子,否则认为是漏洞百出

Assert.IsTrue()             
测试指定的口径是或不是为True,借使为True,则测试通过;

Assert.IsFalse()            
测试指定的准绳是不是为False,如果为False,则测试通过;

Assert.IsNull()              
测试指定的目的是否为空引用,借使为空,则测试通过;

Assert.IsNotNull()         
测试指定的靶子是否为非空,借使不为空,则测试通过;

2、CollectionAssert类的行使

用以表明目的集合是还是不是满足条件

StringAssert类的应用

用于相比较字符串。

StringAssert.Contains

StringAssert.Matches

StringAssert.tartWith

 

3、数据驱动的单元测试

数据驱动的单元测试是指单元测试的输入数据遍历一个数据源的有所行。从数据源的没一行读入数据并传到给测试方法使用

3.1、ACCESS数据驱动单元测试

1)打开测试视图窗口,接纳测试视图

ACCESS 9

2)在测试视图窗口中甄选须要配备成多少驱动格局的单元测试方法,然后按F4,打开单元测试的品质窗口

ACCESS 10

3)编辑”数据连接字符串”属性,在”属性”窗口中单击该属性,然后单击省略号
(…)。那将开辟”拔取数据源”对话框,其中列出了若干个可能的数据源,包蕴ODBC、Microsoft SQL Server 和 Microsoft
Access。选拔一个多少源后将开辟一个特定于该数额源类型的对话框;可以行使此对话框配置该数据源的连年属性。配置完数据连接后,连接字符串会作为”数据连接字符串”的值出现。此字符串还会作为单元测试方法的一个特性存储起来

ACCESS 11

4)在这些界面中,接纳一个Acess表data.mdb,单击”确定”按钮已毕安装,回到”单元测试属性”窗口。能够见到数据源的已经安装好。

ACCESS 12

5)在创设与数据源的接连之后,可以拔取一个数据表。当您单击”属性”窗口的值列中的下拉列表时,将会列出所连接的数据库中的表。从此列表中挑选的表就是在运作单元测试时将寻找其中的行的表。与”数据连接字符串”等其他品质一样,”数据表名称”也会作为单元测试方法的一个特性存储起来。

6)在”数据访问方法”,请拔取”顺序”或”随机”;默认值为”顺序”。此设置表示从数据源的表中检索记录的逐一。

    可以看到,在测试方法前边已经添加了一行:

ACCESS 13

7)数据源的利用

通过 TestContext 类的 DataRow 和 DataConnection
属性将数据提要求正在运作的单元测试。下边为利用TestContext 类的
DataRow属性来读入数据行

ACCESS 14

8)Acess数据源中的表为

ACCESS 15

3.2、读取Excel的方法:

1)在桌面新建一个txt文件,更改文件名为data.dsn

2)选中”数据库连接字符串”,单击左侧列的按钮,更改数据源为Microsoft
ODBC数据源,点击”确定”按钮

ACCESS 16

3)选取使用连接字符串,点击生成

ACCESS 17

4)选取Excel数据源的驱动程序,点击”下一步”

ACCESS 18

5)拔取data.dsn为数据源保存文件,一贯选拔”下一步”。

ACCESS 19

6)在弹出的选项工作簿中,选用用例的输入文件data.txt,点击”确定”

ACCESS 20

7)采纳用例所在的Sheet页,选择”达成”

ACCESS 21

8)数据源的应用代码

ACCESS 22

4、单元测试的周转

单元测试的周转有二种格局:调试和运转。可以像调试普通代码一样对单元测试代码举行调剂,当然也可以平素运行,单元测试的结果将在”测试结果”界面中显示,双击测试结果,可以赢得测试结果的详细音讯。单元测试的代码覆盖率可以在”代码覆盖率结果”界面中显得。

ACCESS 23

ACCESS 24

5、附加测试属性

“附加测试属性”。默许都是被诠释掉的,只要大家废除注释就可以动用了。那些职能的加盟,很大程度上是为了充实测试的灵活性。具体的习性有:

[ClassInitialize()]在运作类的首先个测试前先运行代码

[ClassCleanup()]在运作完类中的所有测试后再运行代码

[TestInitialize()]在运转每个测试前先运行代码

[TestCleanup()]在运作完每个测试后运行代码

如在实践测试时,将测试执行时间输入到日志中,代码如下

ACCESS 25

 

相关文章