第一个单元测试代码
来源:互联网 发布: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); } } }}