zoukankan      html  css  js  c++  java
  • NHibernate配置,单元测试总结

    1 配置文件读取

                // 默认从 App.config,web.config或者hibernate.cfg.xml查找配置文件;
                var cfg = new NHibernate.Cfg.Configuration().Configure();
                
                // 如果配置文件不是以上“App.config,web.config或者hibernate.cfg.xml”,是自定义的配置文件名称;
                // 要注意使用MSTest进行单元测试时,请写配置文件的绝对路径,否则找不到;
                //var cfg = new NHibernate.Cfg.Configuration().Configure("D:/ProjectStudyTest/NHibernate/NHibernateStudy/Lesson3.Dao/Config/hibernate.cfg.xml");
                
                //如果用户Nunit进行单元测试,写相对路径即可。
                //var cfg = new NHibernate.Cfg.Configuration().Configure("Config/hibernate.cfg.xml");
                
                sessionFactory = cfg.BuildSessionFactory();

    2 MSTest单元测试例子:

    using Lesson3.Dao;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using System;
    using System.Linq;
    using Lesson3.Domain;
    using System.Collections.Generic;
    
    namespace Lesson3.MSTest
    {
        /// <summary>
        ///This is a test class for ProductDaoTest and is intended
        ///to contain all ProductDaoTest Unit Tests
        ///</summary>
        [TestClass()]
        public class ProductDaoTest
        {
    
            private TestContext testContextInstance;
    
            /// <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
    
            static IProductDao productDao;
    
            // 
            //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)
            {
                productDao = new ProductDao();
            }
            
            //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 Save
            ///</summary>
            [TestMethod()]
            public void SaveTest()
            {
                var product = new Domain.Product
                {
                    ID = Guid.NewGuid(),
                    BuyPrice = 10M,
                    Code = "ABC123",
                    Name = "电脑-11111111",
                    QuantityPerUnit = "20x1",
                    SellPrice = 11M,
                    Unit = "台",
                    Remark = DateTime.Now.ToLocalTime().ToString()
                };
    
                var obj = productDao.Save(product);
    
                Assert.IsNotNull(obj);
            }
    
            /// <summary>
            ///A test for Update
            ///</summary>
            [TestMethod()]
            public void UpdateTest()
            {
                var product = productDao.LoadAll().FirstOrDefault();
                Assert.IsNotNull(product);
    
                product.SellPrice = 12M;
    
                Assert.AreEqual(12M, product.SellPrice);
            }
    
            /// <summary>
            ///A test for LoadAll
            ///</summary>
            [TestMethod()]
            public void LoadAllTest()
            {
                var count = productDao.LoadAll().Count;
                Assert.IsTrue(count > 0);
            }
    
            /// <summary>
            ///A test for Load
            ///</summary>
            [TestMethod()]
            public void LoadTest()
            {
                var product = productDao.LoadAll().FirstOrDefault();
                Assert.IsNotNull(product);
    
                var id = product.ID;
                Assert.IsNotNull(productDao.Get(id));
            }
    
            /// <summary>
            ///A test for Get
            ///</summary>
            [TestMethod()]
            public void GetTest()
            {
                var product = productDao.LoadAll().FirstOrDefault();
                Assert.IsNotNull(product);
    
                var id = product.ID;
                Assert.IsNotNull(productDao.Get(id));
            }
    
            /// <summary>
            ///A test for Delete
            ///</summary>
            [TestMethod()]
            public void DeleteTest()
            {
                var product = productDao.LoadAll().FirstOrDefault();
                Assert.IsNotNull(product);
    
                var id = product.ID;
                productDao.Delete(product);
                Assert.IsNull(productDao.Get(id));
            }
        }
    }

    3 Nunit单元测试例子

    using System;
    using System.Linq;
    using Lesson3.Dao;
    using NUnit.Framework;
    
    namespace Lesson3.NunitTest
    {
        [TestFixture]
        public class ProductDaoTest
        {
            private IProductDao productDao;
    
            [SetUp]
            public void Init()
            {
                productDao = new ProductDao();
            }
    
            [Test]
            public void SaveTest()
            {
                var product = new Domain.Product
                {
                    ID = Guid.NewGuid(),
                    BuyPrice = 10M,
                    Code = "ABC123",
                    Name = "电脑",
                    QuantityPerUnit = "20x1",
                    SellPrice = 11M,
                    Unit = "台",
                    Remark = DateTime.Now.ToLocalTime().ToString()
                };
    
                var obj = this.productDao.Save(product);
    
                Assert.NotNull(obj);
            }
    
            [Test]
            public void UpdateTest()
            {
                var product = this.productDao.LoadAll().FirstOrDefault();
                Assert.NotNull(product);
    
                product.SellPrice = 12M;
    
                Assert.AreEqual(12M, product.SellPrice);
            }
    
            [Test]
            public void DeleteTest()
            {
                var product = this.productDao.LoadAll().FirstOrDefault();
                Assert.NotNull(product);
    
                var id = product.ID;
                this.productDao.Delete(product);
                Assert.Null(this.productDao.Get(id));
            }
    
            [Test]
            public void GetTest()
            {
                var product = this.productDao.LoadAll().FirstOrDefault();
                Assert.NotNull(product);
    
                var id = product.ID;
                Assert.NotNull(this.productDao.Get(id));
            }
    
            [Test]
            public void LoadTest()
            {
                var product = this.productDao.LoadAll().FirstOrDefault();
                Assert.NotNull(product);
    
                var id = product.ID;
                Assert.NotNull(this.productDao.Get(id));
            }
    
            [Test]
            public void LoadAllTest()
            {
                var count = this.productDao.LoadAll().Count;
                Assert.True(count > 0);
            }
        }
    }
  • 相关阅读:
    0909 作业
    20190909 pycharm快捷键与变量
    20190906 计算机基础
    0905 计算机组成原理
    day 08 作业
    20190902 函数
    20190827 文件操作
    获取多段线上圆弧的中心点 半径
    读取ini配置文件
    CStatic设置位图
  • 原文地址:https://www.cnblogs.com/dbasys/p/2127308.html
Copyright © 2011-2022 走看看