软件测试真的很重要,我想写个例子说明一下如何使用vs2005自带的测试工具进行测试。这个在面试的时候,我被问到了,可是什么也答不上来。我从来都没有做过软件测试,好亏哦。
第一步,先建一个项目,我自己建的是一个类库叫CopyFile,里面只有一个方法叫做FileCopy。这样命名很不规范,我只想达到如何测试的目的而已。内容如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace CopyFile
{
public class CopyFile
{
public CopyFile()
{ }
public static string ErroMsg = string.Empty;
/// <summary>
/// 复制文件
/// </summary>
/// <param name="filePath">文件路径</param>
/// <param name="destFilePath">目标路径</param>
/// <returns>-1 或者 1</returns>
public static int FileCopy(string filePath, string destFilePath)
{
try
{
File.Delete(destFilePath);//将原来的删除
File.Copy(filePath, destFilePath);//复制文件
}
catch (Exception ex)
{
ErroMsg = ex.Message;
}
return 1;
}
}
}
第二步就是建测试项目,选择“测试”——“新建测试”,在弹出“增加新测试”对话框中,选择“单元测试向导”,下面“添加到测试项目(A):”选择“创建新的Visual C#测试项目”,只用默认的名字而已。弹出窗口选择测试CopyFile项目。这样就可以生成测试项目了。修改了“CopyFile.CopyFile target = new CopyFile.CopyFile();”和将具体内容增加到“string filePath = "D:\\love.txt"; // TODO: 初始化为适当的值
string destFilePath = "E:\\love.txt"; // TODO: 初始化为适当的值
”。内容如下:
// 以下代码由 Microsoft Visual Studio 2005 生成。
// 测试所有者应该检查每个测试的有效性。
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Text;
using System.Collections.Generic;
using CopyFile;
namespace TestProject1
{
/// <summary>
///这是 CopyFile.CopyFile 的测试类,旨在
///包含所有 CopyFile.CopyFile 单元测试
///</summary>
[TestClass()]
public class CopyFileTest
{
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>
///CopyFile () 的测试
///</summary>
[TestMethod()]
public void ConstructorTest()
{
CopyFile.CopyFile target = new CopyFile.CopyFile();
// TODO: 实现用来验证目标的代码
Assert.Inconclusive("TODO: 实现用来验证目标的代码");
}
/// <summary>
///FileCopy (string, string) 的测试
///</summary>
[TestMethod()]
public void FileCopyTest()
{
string filePath = "D:\\love.txt"; // TODO: 初始化为适当的值
string destFilePath = "E:\\love.txt"; // TODO: 初始化为适当的值
int expected = 0;
int actual;
actual = CopyFile.CopyFile.FileCopy(filePath, destFilePath);
Assert.AreEqual(expected, actual, "CopyFile.CopyFile.FileCopy 未返回所需的值。");
Assert.Inconclusive("验证此测试方法的正确性。");
}
}
}
第三,可以运行测试项目进行测试。
整个流程就是这样,比较简单。我只会单元测试而已,其他的也没有试过。
我不会在里面增加图片,这个比较麻烦,我可以将源代码发给有需要的人。