vs2005单元测试

来源:互联网 发布:小学生有必要学编程吗 编辑:程序博客网 时间:2024/05/18 23:14

软件测试真的很重要,我想写个例子说明一下如何使用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("验证此测试方法的正确性。");        }    }}

 

第三,可以运行测试项目进行测试。

 

整个流程就是这样,比较简单。我只会单元测试而已,其他的也没有试过。

 

我不会在里面增加图片,这个比较麻烦,我可以将源代码发给有需要的人。

 

原创粉丝点击