图3.2 Visual Studio.NET 2005中的单元测试管理界面
这种类型的工具主要实现了测试代码框架产生的自动化,例如,下面代码是Visual Studio.NET 2005中的单元测试框架MSTest为某个类的方法自动产生的单元测试代码框架:
// 以下代码由 Microsoft Visual Studio 2005 生成。
// 测试所有者应该检查每个测试的有效性。
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Text;
using System.Collections.Generic;
using AUT;
namespace TestProject1
{
/// <summary>
///这是 AUT.Form1 的测试类,旨在包含所有 AUT.Form1 单元测试
///</summary>
[TestClass()]
public class Form1Test
{
private TestContext testContextInstance;
/// <summary>
///获取或设置测试上下文,上下文提供有关当前测试运行及其功能的信息。
///</summary>
public TestContext TestContext
{
get
{
return testContextInstance;
}
set
{
testContextInstance = value;
}
}
#region 附加测试属性
//
//编写测试时,可使用以下附加属性:
//
//使用 ClassInitialize 在运行类中的第一个测试前先运行代码
//
//[ClassInitialize()]
//public static void MyClassInitialize(TestContext testContext)
//{
//}
//
//使用 ClassCleanup 在运行完类中的所有测试后再运行代码
//
//[ClassCleanup()]
//public static void MyClassCleanup()
//{
//}
//
//使用 TestInitialize 在运行每个测试前先运行代码
//
//[TestInitialize()]
//public void MyTestInitialize()
//{
//}
//
//使用 TestCleanup 在运行完每个测试后运行代码
//
//[TestCleanup()]
//public void MyTestCleanup()
//{
//}
//
#endregion
/// <summary>
///Add (int, int) 的测试
///</summary>
[DeploymentItem("AUT.exe")]
[TestMethod()]
public void AddTest()
{
Form1 target = new Form1();
TestProject1.AUT_Form1Accessor accessor =
new TestProject1.AUT_Form1Accessor(target);
int i = 0; // TODO: 初始化为适当的值
int j = 0; // TODO: 初始化为适当的值
int expected = 0;
int actual;
actual = accessor.Add(i, j);
Assert.AreEqual(expected, actual, "AUT.Form1.Add 未返回所需的值。");
Assert.Inconclusive("验证此测试方法的正确性。");
}
}
}
在代码框架的背后,单元测试框架负责查找和调用被测试的类和方法,通过代码反射机制可以访问到被测试代码中的所有方法和属性。另外,单元测试框架会提供一系列的Assert类,使用这些Assert类可以简化测试结果检查、判断的工具。
提示:在执行单元测试时,单元测试框架负责加载包含测试类的程序集文件,通过查找里面的测试类和测试方法标识来加载测试方法,例如,上面代码中的“[TestMethod()]”就是用于标识其中的测试方法。
连载一 连载二 连载三 连载四 连载五 连载六 连载七 连载八 连载九 连载十 连载十二
本文选自:《51Testing软件测试作品系列》之二的《QTP自动化测试实践》,本站经电子工业出版社和作者的授权,近期将进行部分章节的连载,敬请期待!
版权声明:51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。
TAG:QTP自动化测试