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 = "";
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[] { "", "" };
mock.ExpectAndReturn("UpdatePassword", , str);
bool isChangePassword = userBll.UpdatePassword(str[], str[]);
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[] { "", "" }; mock.ExpectAndThrow("UpdatePassword", new UserException(), str);
Assert.Throws<FaultException<MyExceptionContainer>>(
() => this.userBll.UpdatePassword(str[],str[])
);
} [TestFixtureTearDown]
~UserNumit()
{
userBll = null;
user = null;
userDal = null;
}
}
}
UnitTest的更多相关文章
- python_单元测试unittest
Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...
- python单元测试unittest
单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...
- Python 下的unittest测试框架
unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...
- Python unittest appium
import unittest from appium import webdriver from appium.common.exceptions import NoSuchContextExcep ...
- selenium-webdriver(python) (十六) --unittest 框架
学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...
- Node.js的UnitTest单元测试
body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...
- unittest使用过程中sys.exit(not self.result.wasSuccessful())
起因: 在运行下面的unittest过程中出现了个Traceback: 被测试脚本: # splitter.py def split(line, types=None, delimiter=None) ...
- 三言两语聊Python模块–单元测试模块unittest
实际上unittest模块才是真正意义上的用于测试的模块,功能强大的单元测试模块. 继续使用前面的例子: # splitter.py def split(line, types=None, delim ...
- unittest测试驱动之HTMLTestRunner.py
对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起 ...
- unittest可能面临的问题以及解决方法
问题1:用例的执行顺序 当使用unittest.main()时,用例的执行是按照ascall值的顺序来执行的,所以如果使用main()方法来执行用例的话,那么就需要通过命名来限制执行顺序,比如想要先执 ...
随机推荐
- Java Script基础(五) 内置对象Date
在JavaScript中,系统的内置对象有Date对象.Array对象.String对象和Math对象等. 1.Date:用于操作日期和时间. 2.Array:用于在单独的变量名中存储一系列的值. 3 ...
- 一道简单的动态规划题目——House Robber
一.题目 House Robber(一道Leetcode上的关于动态规划的简单题目)具体描述如下: There is a professional robber planning to rob hou ...
- 怒刷DP之 HDU 1087
Super Jumping! Jumping! Jumping! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64 ...
- 转: app端数据库(性能高) realm (ios, android 均支持)
转: http://ios.jobbole.com/85041/ 移动端数据库新王者:realm 2016/05/14 · iOS开发 · 数据库 分享到:0 原文出处: 没故事的卓同学(@没故事的 ...
- .Net简单上传与下载
上传: 首先上传我们需要一个控件-FileUpLoad: 再加上一个上传按钮: 在上传按钮的Click事件中添加如下代码: FileUpload1.SaveAs(Server.MapPath(&quo ...
- 跟我一起学习ASP.NET 4.5 MVC4.0(一)(转)
由于上面一个项目使用的是ASP.NET4.0 MVC3.0,在招人的时候发现很多人有听说过MVC,但是却是没用过,对MVC也只是一知半解,最近想给团队成员做一个系统的解说,让大家都可以学习一下ASP. ...
- Handler发送Message
用Handler更新UI package activity.cyq.handlermessage; import android.content.res.Resources; import andro ...
- Ubuntu 16.04 Vysor 破解 和黑屏问题解决+ 闪屏问题解决
最新破解更新说明: 参考本人blog: 点我呀 黑屏解决 Vysor使用和黑屏问题 经过了一段时间的艰辛探索,确定是我chrome的PNaCl没有安装,然后又是一段艰辛的Google之后,终于在一个链 ...
- WScript.SendKeys()的sendkeys发送组合键以及特殊字符
SendKeys.Send("^+{TAB}"); 使用SendKeys将键击和组合键击发送到活动应用程序.此类无法实例化.若要发送一个键击给某个类并立即继续程序流,请使用Send ...
- ASP.NET jquery ajax传递参数
第一种:GET传递 前台 ajax GET 传递 :即在请求的地址后面加上参数,URL地址长度有显示,安全性低 后台接收:Request.QueryString[“参数名字”]! 例如: func ...