企业库4.0还是好用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Practices.EnterpriseLibrary.Data;
using System.Data.Common;

namespace cnblog.DAL
{
    public class CnblogUserDal
    {
        public void CreateUser( string username, string password, string displayName, string email, string gender )
        {
            string sql = @"insert into [User](userName ,password ,displayName ,Email ,gender)
                              values( @Name ,@password ,@displayName ,@Email ,@gender)";

            Database db = DatabaseFactory.CreateDatabase( "blog" );
            DbCommand command = db.GetSqlStringCommand( sql );
            db.AddInParameter( command, "name", System.Data.DbType.String, username );
            db.AddInParameter( command, "password", System.Data.DbType.String, password );
            db.AddInParameter( command, "displayName", System.Data.DbType.String, displayName );
            db.AddInParameter( command, "email", System.Data.DbType.String, email );
            db.AddInParameter( command, "gender", System.Data.DbType.String, gender );

            db.ExecuteNonQuery( command );
        }

        public cnblog.Model.cnblogUser GetUser( string username )
        {
            cnblog.Model.cnblogUser user = null;
            string sql = "select userName ,displayName ,Email ,gender from User where user=@userName";

            Database db = DatabaseFactory.CreateDatabase( "blog" );
            DbCommand command = db.GetSqlStringCommand( sql );
            db.AddInParameter( command, "name", System.Data.DbType.String, username );

            using ( System.Data.IDataReader reader = db.ExecuteReader( command ) )
            {
                if ( reader.Read() )
                {
                    user = new Model.cnblogUser(
                        reader.GetString( 0 ),
                        reader.GetString( 1 ),
                        reader.GetString( 2 ),
                        reader.GetString( 3 )
                        );
                }
            }
            return user;
        }
    }
}

连接串:

<!--<add name ="blog" connectionString="Data Source=192.168.1.101;Initial Catalog=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101;Initial database=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101; Catalog=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101; database=cnblogs;user id=sa;password=sa"/>连接不了-->
<!--<add name ="blog" connectionString="Data Source=192.168.1.101;Initial database=cnblogs;Integrated Security=True" providerName="System.Data.SqlClient"/>连接不了-->
<add name ="blog" connectionString="Data Source=192.168.1.101;Initial Catalog=cnblogs;Integrated Security=True" providerName="System.Data.SqlClient"/>

 

测试代码
using cnblog.DAL;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using cnblog.Model;

namespace cnblog.DALTest
{
    /// <summary>
    ///这是 CnblogUserDalTest 的测试类,旨在
    ///包含所有 CnblogUserDalTest 单元测试
    ///</summary>
    [TestClass( )]
    public class CnblogUserDalTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///获取或设置测试上下文,上下文提供
        ///有关当前测试运行及其功能的信息。
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region 附加测试特性
        //
        //编写测试时,还可使用以下特性:
        //
        //使用 ClassInitialize 在运行类中的第一个测试前先运行代码
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //使用 ClassCleanup 在运行完类中的所有测试后再运行代码
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //使用 TestInitialize 在运行每个测试前先运行代码
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //使用 TestCleanup 在运行完每个测试后运行代码
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        /// <summary>
        ///CnblogUserDal 构造函数 的测试
        ///</summary>
        [TestMethod( )]
        public void CnblogUserDalConstructorTest( )
        {
            CnblogUserDal target = new CnblogUserDal( );
            Assert.Inconclusive( "TODO: 实现用来验证目标的代码" );
        }

        /// <summary>
        ///CreateUser 的测试
        ///</summary>
        [TestMethod( )]
        public void CreateUserTest( )
        {
            CnblogUserDal target = new CnblogUserDal( ); // TODO: 初始化为适当的值
            string username = "yy"; // TODO: 初始化为适当的值
            string password = "xx"; // TODO: 初始化为适当的值
            string displayName = "mm"; // TODO: 初始化为适当的值
            string email = "ee"; // TODO: 初始化为适当的值
            string gender = "男"; // TODO: 初始化为适当的值
            target.CreateUser( username, password, displayName, email, gender );
            Assert.Inconclusive( "无法验证不返回值的方法。" );
        }

        /// <summary>
        ///GetUser 的测试
        ///</summary>
        [TestMethod( )]
        public void GetUserTest( )
        {
            CnblogUserDal target = new CnblogUserDal( ); // TODO: 初始化为适当的值
            string username = "yy"; // TODO: 初始化为适当的值
            cnblogUser expected = null; // TODO: 初始化为适当的值
            cnblogUser actual;
            actual = target.GetUser( username );
            Assert.AreEqual( expected, actual );
            Assert.Inconclusive( "验证此测试方法的正确性。" );
        }
    }
}

 

posted @ 2012-08-10 02:29  blog_yuan  阅读(377)  评论(0编辑  收藏  举报