• 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;
            }
        }
    }
  • 相关阅读:
    SpriteKit改变Node锚点其物理对象位置不对的解决
    亲热接触Redis-第二天(Redis Sentinel)
    Java设计模式(二)-单例模式
    Android—构建安全的Androidclient请求,避免非法请求
    自己主动化測试使用mybatis更新数据库信息实例
    UML回想-通信图
    第十六课 数组的引入 【项目1-5】
    被这个样式惊醒
    netty自定义解码器
    解决netty客户端接收报文不完整的情况
  • 原文地址:https://www.cnblogs.com/chenyongblog/p/3819146.html
Copyright © 2020-2023  润新知