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的更多相关文章

  1. python_单元测试unittest

    Python自带一个单元测试框架是unittest模块,用它来做单元测试,它里面封装好了一些校验返回的结果方法和一些用例执行前的初始化操作. 步骤1:首先引入unittest模块--import un ...

  2. python单元测试unittest

    单元测试作为任何语言的开发者都应该是必要的,因为时隔数月后再回来调试自己的复杂程序时,其实也是很崩溃的事情.虽然会很快熟悉内容,但是修改和 调试将是一件痛苦的事情,如果你在修改了代码后出现问题的话,而 ...

  3. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  4. Python unittest appium

    import unittest from appium import webdriver from appium.common.exceptions import NoSuchContextExcep ...

  5. selenium-webdriver(python) (十六) --unittest 框架

    学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试(一)----selen ...

  6. Node.js的UnitTest单元测试

    body{ font: 16px/1.5em 微软雅黑,arial,verdana,helvetica,sans-serif; } 在专业化的软件开发过程中,无论什么平台语言,现在都需要UnitTes ...

  7. unittest使用过程中sys.exit(not self.result.wasSuccessful())

    起因: 在运行下面的unittest过程中出现了个Traceback: 被测试脚本: # splitter.py def split(line, types=None, delimiter=None) ...

  8. 三言两语聊Python模块–单元测试模块unittest

    实际上unittest模块才是真正意义上的用于测试的模块,功能强大的单元测试模块. 继续使用前面的例子: # splitter.py def split(line, types=None, delim ...

  9. unittest测试驱动之HTMLTestRunner.py

    对于自动化来说,测试报告是必须的,在敏捷化的团队中,团队中的成员需要自动化这边提供自动化的测试报告,来判断系统的整体质量以及下一步的测试策略.单元测试库生成测试输出到控制台的窗口上,但是这样的结果看起 ...

  10. unittest可能面临的问题以及解决方法

    问题1:用例的执行顺序 当使用unittest.main()时,用例的执行是按照ascall值的顺序来执行的,所以如果使用main()方法来执行用例的话,那么就需要通过命名来限制执行顺序,比如想要先执 ...

随机推荐

  1. 关于bochs用X11启动的说明

    关于网络上有很多关于 bochs启动时 连接到X Windows 报错: cannot connect to X display . 昨天搞了半天+晚上 + 今天早上 + 直到现在 才搞懂. 主要的原 ...

  2. javascript 特性

    作用域: javascript的作用域称为静态作用域,在定义语法上就能确认了,而不是运行时. if (true) { var i = 'moersing' } console.log(i); //可以 ...

  3. 剑指Offer21 二叉树的层序遍历

    /************************************************************************* > File Name: 21_PrintT ...

  4. BZOJ 2456

    Description 给你一个n个数的数列,其中某个数出现了超过n div 2次即众数,请你找出那个数. Input 第1行一个正整数n.第2行n个正整数用空格隔开. Output 一行一个正整数表 ...

  5. asp.net MVC 如何隐藏 Response Header 版本号

    根据借楼最少资源原则,有时候MVC需要隐藏自己的版本号,其实这里也是比较简单的,只需要在Global.ascx 的Application_Start()中添加一行代码既可 添加为  MVCHandle ...

  6. OpenShare新功能@2014年10月

    新功能@ Oct,2014 增强“应用中心”(就是“企业应用门户”功能):在Dock上增加“应用中心”图标,使得用户无论在任何页面,任何位置,永远都是点击一下即可进入任一企业应用,而无需回退到门户主页 ...

  7. JavaScript--Function类型(11)

    // 在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例;而且都与其他引用类型一样具有属性和方法; // 由于函数是对象,因此函数名实际上也是一个指向函数对象的 ...

  8. JQuery Mobile + Cordova 实战一

    好的,今天给大家继续讲解 JQM 和 Cordova 的结合吧.Cordova 和 Phonegap 反正是一个东西,大家就当做一个是旧版(Phonegap)的一个是新版(Cordova)的就行.不同 ...

  9. 从ASP.NET的web1子界面刷新打开web1的web0父界面

    单击web0界面的按钮bt1触发一下代码: protected void btnSave_Click(object sender, EventArgs e) { string parentJs = @ ...

  10. js 调用php代码

    <?php $test = "var a = ".$_GET['test'].";"; ?> <mce:script type="t ...