利用Nunit进行单元测试 NHibernate在SQL server中建表

本文介绍如何在VS2015环境下使用NHibernate进行数据库映射并结合NUnit框架实现单元测试。主要内容包括配置NHibernate、创建实体类和映射文件、设置数据库连接及测试表的生成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天试了下vs里安装的Nunit进行单元测试。感觉不错。上货

开发环境:VS2015、SQL server 2012、NHibernate 3.3.3 ,NUnit 2.6.2,NUnit.Runners.2.6.2

所以为什么会有NHibernate呢? 最近在研究这玩意嘛。没办法。就拿他来做个简单的单元测试,Nunit也是在vs中使用Nuget包安装的。

这是整个解决方案的结构图-------


1.先配置下NHibernate吧

  1.   打开vs,新建项目,选择类库,命名Domain;
  2.   在其中添加Student.cs 实体类。代码如下:

namespace Domain
{
    
        /// <summary>  
        /// 学生类  
        /// </summary>  
        public class Student
        {
            /// <summary>  
            /// ID  
            /// </summary>  
            public virtual int ID { get; set; }
            /// <summary>  
            /// 学生姓名  
            /// </summary>  
            public virtual string Name { get; set; }
            /// <summary>  
            /// 学生性别  
            /// </summary>  
            public virtual string Sex { get; set; }
            /// <summary>  
            /// 学生年龄  
            /// </summary>  
            public virtual int Age { get; set; }
        }

    
      3.添加一个XML文件,取名为:Student.hbm.xml;代码如下:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Domain" namespace="Domain">
   <class name="Student" table="T_Student" lazy="true">
     <id name="ID" column="ID" unsaved-value="0">
        <generator class="native"></generator>
     
    </id>
       <property name="Name" type="string" column="StuName" length="20" not-null="true"></property>
       <property name="Sex" type="string" column="StuSex" length="2"></property>
      <property name="Age" type="Int32" column="StuAge"></property>
    
  </class>

</hibernate-mapping>
  在Student.hbm.xml 文件上右击,选择”属性“,将xml文件的生成操作属性由”内容“改为”嵌入的资源“。如下图:


   4.此时,我们右键选择解决方案,创建一个新的类库,取名为:NHibernateTest。

      此时我们要对NHibernateTest这个新的类库,添加一些引用。

      首先右键NHibernateTest,选择Nuget管理。搜索NHibernate 3.3.3 ,NUnit 2.6.2,NUnit.Runners.2.6.2进行安装。

      安装完成后,我们需要对刚才完成的Domain类库进行引用。

      这样才算大功告成。

     5.添加一个xml文件,名为hibernate.cfg.xml,代码如下:

<?xml version="1.0" encoding="utf-8"?>
<!--   
This template was written to work with NHibernate.Test.  
Copy the template to your NHibernate.Test project folder and rename it in hibernate.cfg.xml and change it   
for your own use before compile tests in VisualStudio.  
.-->
<!-- This is the System.Data.dll provider for SQL Server -->
<hibernate-configuration  xmlns="urn:nhibernate-configuration-2.2" >
   <session-factory name="NHibernate.Test">
       <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
          <property name="connection.connection_string">
            <!-- server后面写的是sqlserver服务器的名称,本地服务器默认计算机名\SQLEXPRESS;uid是登陆数据库用的管理员名称;pwd是密码;database是要连接的数据库-->
            server=VS\SQLEXPRESS;uid=sa;pwd=!QAZ2wsx;database=nhibernate;
          </property>
          <property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property>
       <!--添加下面这行代码,除此之外,其它都不用改动,当然,你也可以修改上面的数据库链接字符串-->
       <mapping assembly="Domain"/>
   
  </session-factory>

</hibernate-configuration>
    6.最后,也是最关键的。添加一个NHibernateTest.cs类,来测试我们的Nhibernate是否连接到数据库,并创建表。代码如下:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Text;  
using System.Threading.Tasks;  
using NHibernate;  
using NHibernate.Tool.hbm2ddl;  
using NUnit.Framework;  
  
namespace NHibernateTest
{  
    [TestFixture]  
    public class NHibernateInit
    {  
        [Test]  
        public void InitTest()
        {  
            var cfg = new NHibernate.Cfg.Configuration().Configure(System.AppDomain.CurrentDomain.BaseDirectory + "\\hibernate.cfg.xml");  
            new SchemaExport(cfg).Execute(true, true, false);  
            using (ISessionFactory sessionFactory = cfg.BuildSessionFactory()) { }  
        }  
    }  
}  
7.用SQL server创建一个数据库nhibernate。


测试开始:

  1. 右键NHibernateTest项目,选择属性;
  2. 选择启动外部程序。
  3. 如下图所示,找到文件夹中的nunit.exe.


      

点击一下”全部保存“,然后在整个的项目解决方案上右键,选择”生成解决方案“。然后,将NHibernateTest 类库右键,设为启动项目。F5,运行程序

此时,我们看到NUnit.exe已经启动了,在NUnit窗口中,选择:"File"->”new project“,文件名为:NHibernateTest.nunit,点击保存。此时,窗口依然什么都没有。再选择:"Project"->"Add assembly",在弹出的对话框中,找到我们的NHibernateTest类库生成的dll文件,点击打开,如下图:


最后,点击run,就大功告成!!!!


此刻检查数据库,发现Student表已建立。(其实根据图中的代码语句也可以看出。)


PS 如果:出现红色,表示fail。可以根据下面的提示信息寻找一下原因。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值