zoukankan      html  css  js  c++  java
  • UnitTest

    
    using Bll;
    using Model;
    using Dal;
    
    using NUnit.Framework;
    using NUnit.Mocks;
    using System.ServiceModel;
    using Constant;
    
    namespace OES.Nunit
    {
        /// <summary>
        /// This class is used for test use business logic layer.
        /// </summary>
        [TestFixture]
        public class UserNumit
        {
            private DynamicMock mock = null;
            private IUserDal userDal = null;
            private IUserBll userBll = null;
            private User user = null;
    
            [SetUp]
            public void Initialize()
            {
                user = new User();
                user.UserName = "a1";
                user.Password = "1";
                user.RoleType = "student";
            }
            [Test]
            public void LogOn()
            {
                mock = new DynamicMock(typeof(IUserDal));
                userDal = (IUserDal)mock.MockInstance;
                userBll = new UserBll();
                userBll = new UserBll(userDal);
                mock.ExpectAndReturn("RetrieveUserByUserName", user, user.UserName);
                User getUser = userBll.RetrieveUserByUserName(user.UserName);
                Assert.IsNotNull(getUser, "User is not null");
            }
    
            [Test]
            public void LogOnException()
            {
                mock = new DynamicMock(typeof(IUserDal));
                userDal = (IUserDal)mock.MockInstance;
                userBll = new UserBll();
                userBll = new UserBll(userDal);
    
                mock.ExpectAndThrow("RetrieveUserByUserName", new UserException(), user.UserName);
                Assert.Throws<FaultException<MyExceptionContainer>>(
                    () => this.userBll.RetrieveUserByUserName(user.UserName)
                    );
            }
            [Test]
            public void ChangePassword()
            {
                mock = new DynamicMock(typeof(IUserDal));
                userDal = (IUserDal)mock.MockInstance;
                userBll = new UserBll();
                userBll = new UserBll(userDal);
                string[] str = new string[] { "1", "123" };
                mock.ExpectAndReturn("UpdatePassword", 1, str);
                bool isChangePassword = userBll.UpdatePassword(str[0], str[1]);
                Assert.True(isChangePassword, "Changed password");
            }
    
            [Test]
            public void ChangePasswordException()
            {
                mock = new DynamicMock(typeof(IUserDal));
                userDal = (IUserDal)mock.MockInstance;
                userBll = new UserBll();
                userBll = new UserBll(userDal);
                string[] str = new string[] { "1", "123" };
    
                mock.ExpectAndThrow("UpdatePassword", new UserException(), str);
                Assert.Throws<FaultException<MyExceptionContainer>>(
                    () => this.userBll.UpdatePassword(str[0],str[1])
                    );
            }
    
            [TestFixtureTearDown]
            ~UserNumit()
            {
                userBll = null;
                user = null;
                userDal = null;
            }
        }
    }
  • 相关阅读:
    python快速查看内置模块函数
    kettle -小技巧 null 跳过唯一索引
    IOException:Connection refused:connect Kettle连接数据库
    各种数据库的jdbc驱动下载及连接方式
    DataCleaner中文文档
    ModuleNotFoundError: No module named 'xlwt' 。
    liunx 常用命令
    Mysql 环境搭建详解
    查询mysql所有表数据、字段信息
    mysqp pk、nn、qu、b、un、zf、ai、g代表的意思
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3819146.html
Copyright © 2011-2022 走看看