第一个单元测试代码

来源:互联网 发布:java io框架图 编辑:程序博客网 时间:2024/05/02 00:56
using ICP.AutoMachine.AutoCheck;using Microsoft.VisualStudio.TestTools.UnitTesting;using System;using ICP.Case;using System.Collections.Generic;using System.IO;using System.Xml.Linq;using System.Linq;namespace Test_Method_CheckData{            /// <summary>    ///This is a test class for AutoCheckMachineTest and is intended    ///to contain all AutoCheckMachineTest Unit Tests    ///</summary>    [TestClass()]    public class AutoCheckMachineTest    {        private TestContext testContextInstance;        //两张表完全匹配        #region 数据流1 两张表格 Exmaple1_1        private string Exmaple1_1 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        #region 数据流2 两张表格 Exmaple1_2        private string Exmaple1_2 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        //表格数量不一样        #region 数据流1 三张表格 Exmaple2_1        private string Exmaple2_1 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                    + "<table name=\"table3\">"                                        + "<row>"                                            + "<filed name=\"商品名\" value=\"上好佳\"/>"                                            + "<filed name=\"价格\" value=\"4$\"/>"                                            + "<filed name=\"保质期\" value=\"一年\"/>"                                        + "</row>"                                        + "<row>"                                            + "<filed name=\"商品名\" value=\"酱油\"/>"                                            + "<filed name=\"价格\" value=\"5$\"/>"                                            + "<filed name=\"保质期\" value=\"三年\"/>"                                        + "</row>"                                        + "<row>"                                            + "<filed name=\"商品名\" value=\"砖头\"/>"                                            + "<filed name=\"价格\" value=\"无价\"/>"                                            + "<filed name=\"保质期\" value=\"永久\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        #region 数据流2 两张表格 Exmaple2_2        private string Exmaple2_2 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        //字段值不一样        #region 数据流1  Exmaple3_1        private string Exmaple3_1 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        #region 数据流2  Exmaple3_2        private string Exmaple3_2 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        //表格数量一样,其中一张列数不一样        #region 数据流1 两张表格 Exmaple4_1        private string Exmaple4_1 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        #region 数据流2 两张表格 Exmaple4_2        private string Exmaple4_2 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        //表格数量一样,其中一张行数不一样        #region 数据流1 两张表格 Exmaple5_1        private string Exmaple5_1 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        #region 数据流2 两张表格 Exmaple5_2        private string Exmaple5_2 = "<activityData>"                                    + "<table name=\"table1\">"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小明\"/>"                                        + "<filed name=\"学号\" value=\"01104010\"/>"                                        + "<filed name=\"备注\" value=\"123\"/>"                                       + "</row>"                                       + "<row>"                                        + "<filed name=\"姓名\" value=\"小强\"/>"                                        + "<filed name=\"学号\" value=\"3131123\"/>"                                        + "<filed name=\"备注\" value=\"330\"/>"                                       + "</row>"                                    + "</table>"                                    + "<table name=\"table2\">"                                        + "<row>"                                           + "<filed name=\"A\" value=\"3\"/>"                                           + "<filed name=\"B\" value=\"4\"/>"                                           + "<filed name=\"C\" value=\"5\"/>"                                           + "<filed name=\"D\" value=\"6\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"5\"/>"                                           + "<filed name=\"B\" value=\"6\"/>"                                           + "<filed name=\"C\" value=\"7\"/>"                                           + "<filed name=\"D\" value=\"8\"/>"                                        + "</row>"                                        + "<row>"                                           + "<filed name=\"A\" value=\"9\"/>"                                           + "<filed name=\"B\" value=\"10\"/>"                                           + "<filed name=\"C\" value=\"11\"/>"                                           + "<filed name=\"D\" value=\"12\"/>"                                        + "</row>"                                    + "</table>"                                + "</activityData>";        #endregion        /// <summary>        ///Gets or sets the test context which provides        ///information about and functionality for the current test run.        ///</summary>        public TestContext TestContext        {            get            {                return testContextInstance;            }            set            {                testContextInstance = value;            }        }        #region Additional test attributes        //         //You can use the following additional attributes as you write your tests:        //        //Use ClassInitialize to run code before running the first test in the class        //[ClassInitialize()]        //public static void MyClassInitialize(TestContext testContext)        //{        //}        //        //Use ClassCleanup to run code after all tests in a class have run        //[ClassCleanup()]        //public static void MyClassCleanup()        //{        //}        //        //Use TestInitialize to run code before running each test        //[TestInitialize()]        //public void MyTestInitialize()        //{        //}        //        //Use TestCleanup to run code after each test has run        //[TestCleanup()]        //public void MyTestCleanup()        //{        //}        //        #endregion        /// <summary>        ///A test for CheckData        ///</summary>        [TestMethod()]        public void CheckDataTest()        {            AutoCheckMachine target = new AutoCheckMachine(); // TODO: Initialize to an appropriate value            ActivityData data1 = new ActivityData();            ActivityData data2 = new ActivityData();                        ReadDataFromString(ref data1,Exmaple1_1);            ReadDataFromString(ref data2, Exmaple1_2);            List<ActivityData> datas = new List<ActivityData>(); // TODO: Initialize to an appropriate value            datas.Add(data1); datas.Add(data2);            ActivityData resultData = new ActivityData(); // TODO: Initialize to an appropriate value            ActivityData resultDataExpected = new ActivityData(); // TODO: Initialize to an appropriate value            resultDataExpected=datas[0];            target.CheckData(datas, ref resultData);            Assert.AreEqual(resultDataExpected, resultData);            //Assert.Inconclusive("A method that does not return a value cannot be verified.");        }        [TestMethod()]        public void CheckDataTest1()        {            AutoCheckMachine target = new AutoCheckMachine(); // TODO: Initialize to an appropriate value            ActivityData data1 = new ActivityData();            ActivityData data2 = new ActivityData();            ReadDataFromString(ref data1, Exmaple2_1);            ReadDataFromString(ref data2, Exmaple2_2);            List<ActivityData> datas = new List<ActivityData>(); // TODO: Initialize to an appropriate value            datas.Add(data1); datas.Add(data2);            ActivityData resultData = new ActivityData(); // TODO: Initialize to an appropriate value            ActivityData resultDataExpected = new ActivityData(); // TODO: Initialize to an appropriate value            resultDataExpected = null;            target.CheckData(datas, ref resultData);            Assert.AreEqual(resultDataExpected, resultData);        }        [TestMethod()]        public void CheckDataTest2()        {            AutoCheckMachine target = new AutoCheckMachine(); // TODO: Initialize to an appropriate value            ActivityData data1 = new ActivityData();            ActivityData data2 = new ActivityData();            ReadDataFromString(ref data1, Exmaple3_1);            ReadDataFromString(ref data2, Exmaple3_2);            List<ActivityData> datas = new List<ActivityData>(); // TODO: Initialize to an appropriate value            datas.Add(data1); datas.Add(data2);            ActivityData resultData = new ActivityData(); // TODO: Initialize to an appropriate value            ActivityData resultDataExpected = new ActivityData(); // TODO: Initialize to an appropriate value            resultDataExpected = null;            target.CheckData(datas, ref resultData);            Assert.AreEqual(resultDataExpected, resultData);            //Assert.Inconclusive("A method that does not return a value cannot be verified.");        }        [TestMethod()]        public void CheckDataTest3()        {            AutoCheckMachine target = new AutoCheckMachine(); // TODO: Initialize to an appropriate value            ActivityData data1 = new ActivityData();            ActivityData data2 = new ActivityData();            ReadDataFromString(ref data1, Exmaple4_1);            ReadDataFromString(ref data2, Exmaple4_2);            List<ActivityData> datas = new List<ActivityData>(); // TODO: Initialize to an appropriate value            datas.Add(data1); datas.Add(data2);            ActivityData resultData = new ActivityData(); // TODO: Initialize to an appropriate value            ActivityData resultDataExpected = new ActivityData(); // TODO: Initialize to an appropriate value            resultDataExpected = null;            target.CheckData(datas, ref resultData);            Assert.AreEqual(resultDataExpected, resultData);            //Assert.Inconclusive("A method that does not return a value cannot be verified.");        }        [TestMethod()]        public void CheckDataTest4()        {            AutoCheckMachine target = new AutoCheckMachine(); // TODO: Initialize to an appropriate value            ActivityData data1 = new ActivityData();            ActivityData data2 = new ActivityData();            ReadDataFromString(ref data1, Exmaple5_1);            ReadDataFromString(ref data2, Exmaple5_2);            List<ActivityData> datas = new List<ActivityData>(); // TODO: Initialize to an appropriate value            datas.Add(data1); datas.Add(data2);            ActivityData resultData = new ActivityData(); // TODO: Initialize to an appropriate value            ActivityData resultDataExpected = new ActivityData(); // TODO: Initialize to an appropriate value            resultDataExpected = null;            target.CheckData(datas, ref resultData);            Assert.AreEqual(resultDataExpected, resultData);            //Assert.Inconclusive("A method that does not return a value cannot be verified.");        }        public void ReadDataFromString(ref ActivityData data,string example)        {            XElement xFlow=XElement.Parse(example);            var tables=from tb in xFlow.Elements("table") select tb;            foreach(var ta in tables)            {                var rows=from row in ta.Elements("row") select row;                EntryTable et = new EntryTable();                et.Name = ta.FirstAttribute.Value;                foreach(var row in rows)                {                    var fileds=from filed in row.Elements("filed") select filed;                    EntryRow rw = new EntryRow();                    foreach(var filed in fileds)                    {                        EntryField fd = new EntryField();                        fd.Name = filed.FirstAttribute.Value;                        fd.Value = filed.LastAttribute.Value;                        rw.Fields.Add(fd);                    }                    et.Rows.Add(rw);                }                data.Tables.Add(et);            }        }    }}