第一个单元测试代码

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);
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值