.net中单元测试

单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。

xUnit 是一个适用于 .NET 的免费、开源、面向社区的单元测试工具。xUnit.net 由 NUnit v2 的原发明者编写,是针对单元测试 .NET 应用的最新技术。xUnit.net 适用于 ReSharper、CodeRush、TestDriven.NET 和 Xamarin。它是 .NET Foundation 的项目,并在其行为准则下运行。

可以直接对方法进行异常测试,也可以对模拟对象进行异常测试,但是,对模拟对象进行异常测试,很少用,所以,这里就介绍对方法的异常测试。请看如下代码,当用户名为空的时候,抛出异常。

 
public bool Valid(string userName, string passWord){if (string.IsNullOrEmpty(userName)) throw new ArgumentNullException("userName is null");var isValid = userName == "admin" && passWord == "123456";Log.Write(userName);return isValid;}

这里用到了一个LastCall的一个类,比较常用,一些辅助测试的功能,都在该类中。

[Test]
public void Valid_Return()
{MockRepository mock = new MockRepository();var log = mock.DynamicMock<ILog>();using (mock.Record()){log.WriteLog("admin");LastCall.Return(0);}var returnValue = log.WriteLog("admin");Assert.AreEqual(returnValue, 0);
}   
   [TestMethod]public void Test_QuestionInsert(){//MongoHelper.RigisterConventions();//var num = new Random().Next(100000, 1000000);//new QuestionBll().Insert(new QuestionForAdd//{//    AnswerValue = new Random().Next(1, 5),//    CategoryId = "57ecd3aa3a19a5287ccaa7f0",//    Title = "题目题目题目" + num++,//    Options = new List<AnsQuestionOptions>//    {//        new AnsQuestionOptions {Img = null, Text = "选项选项选项" + num++, Value = 1},//        new AnsQuestionOptions {Img = null, Text = "选项选项选项" + num++, Value = 2},//        new AnsQuestionOptions {Img = null, Text = "选项选项选项" + num++, Value = 3},//        new AnsQuestionOptions {Img = null, Text = "选项选项选项" + num, Value = 4}//    },//    Type = QuestionType.DoubleText//});}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300289.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WCF后续之旅(11): 关于并发、回调的线程关联性(Thread Affinity)

对于一般的多线程操作&#xff0c;比如异步地进行基于文件系统的IO操作&#xff1b;异步地调用Web Service&#xff1b;或者是异步地进行数据库访问等等&#xff0c;是和具体的线程无关的。也就是说&#xff0c;对于这些操作&#xff0c;任意创建一个新的线程来执行都是等效的。…

成年人改变生活的方式,都是从它开始

全世界只有3.14 % 的人关注了青少年数学之旅2019已经不足80天&#xff0c;年初立下的flag倒了几个&#xff1f;史蒂夫马丁有一句话&#xff1a;“所有的人生谜语都可以从阅读中找到答案。”无论是读影评、读好书&#xff0c;亦或者涉猎趣闻轶事、汲取犀利观点&#xff0c;总会悄…

组策略链接顺序优先级

“链接顺序”最低的 GPO 最后处理&#xff0c;因此具有最高的优先级。

oracle体系结构和组件图示,Oracle 体系结构组件

Oracle数据库主要由两大组件构成&#xff1a;实例&#xff1a;进程与内存结构。数据库&#xff1a;操作系统文件。实例是我们访问数据库的接口。一个实例只能打开一个数据库。当你用SQLPlus或其它的客户端工具去连接Oracle数据库时&#xff0c;你的客户端进程与服务器端进程通讯…

Request.ServerVariables的详细应用(转)

Request.ServerVariables应用 【摘 要】本文详细介绍关于学习ASP知识之Request.ServerVariables应用的文章专题。本机ip:<%request.servervariables("remote_addr")%>服务器名:<%Request.ServerVariables("SERVER_NAME")%>服务器IP:<%Requ…

uiview生命周期

在viewDidAppear方法中做了一段页面开始的动画&#xff0c;但是动画效果在横屏是没有问题的&#xff0c;在竖屏轨迹总是不对。解决方法执行顺序的问题&#xff0c;页面的加载顺序是2011-11-04 13:48:21.290 jjj[4048:707] viewDidAppear2011-11-04 13:48:21.291 jjj[4048:707] …

表白和被表白时遇到的骚操作,最后一个天秀!| 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅【1】【2】【3】【4】【5】【6】【7】【8】【9】

oracle中的的instr,Oracle中instr函数使用方法

举例&#xff1a;scenarioinfo 中有60条数据&#xff0c;其中字段ywwd不为空的有40条(其中包含“积分”的有30条)&#xff0c;字段ywwd为空的有20条。查询scenarioinfo 表中字段ywwd包含“积分”的语句(返回30条数据)&#xff1a;select id, ywwd from scenarioinfo where inst…

这么简单的序列化 System.Text.Json.Serialization 也报错了?

咨询区 kofifus&#xff1a;我准备将项目中的 JSON.NET 切换到原生的 System.Text.Json&#xff0c;但我遇到了个意外报错&#xff0c;测试代码如下&#xff1a;using System.Text.Json.Serialization; using Newtonsoft.Json;public class C {public C(string PracticeName) {…

直观机械动图,一秒看懂原理!

全世界只有3.14 % 的人关注了青少年数学之旅这些神奇唯美的机械动图&#xff0c;让我们不得不感叹制造的魅力&#xff01;仿生四翼飞行机器人▲单手磁性拉链▲风洞实验——模拟飞机飞行▲可以说是最快的折弯机了▲这是谁设计的死循环▲高压水除锈▲摩擦焊接▲打地洞▲能轻松把车…

数据校验器架构模式组

刘 岳林 (yuelin_liumsn.com), 软件工程师2007 年 1 月 15 日本文阐述软件架构与设计模式&#xff0c;它为架构师和开发人员提供了一组关于数据校验的架构模式&#xff08;隔离校验器&#xff0c;可组装校验器&#xff0c;动态策略校验器&#xff0c;动态注册校验器等&#xff…

nobelking 3 js 数字和数字相加 字符串连接 数字和字符串连接1

以下结果是在IE8的测试结果我只测试了变量相加&#xff0c;还没测试变量和常量1.当两个变量&#xff08;已经赋初值 &#xff09;用“”连接&#xff0c;如果含有至少一个为字符串 &#xff0c;无论两个字符串是否定义时有var或者有一个有var&#xff0c;则结果必定为字符串。2…

罗斯文2007(Northwind 2007)数据库、Access 2007 样列数据库分析[转]

Northwind 2007 是 MS 的一套销售类样列库&#xff0c;本片文章主要描述&#xff0c;它的结构及关系。 起因:   前些阵子一直想做一个虚拟项目来学习巩固一下 .net3.0 的一些新技术、为什么要做虚拟项目&#xff1f; 当然是系统的学习一些东西了、我对虚拟项目的要求是不能太…

oracle中sql行数的计算,Oracle技术网—如何利用DBMS_SQL包和游标计算当前用户下所有表的行数...

实现方法&#xff1a;SQL> conn scott/tigerSQL> set serveroutput on size 1000000SQL>SQL> DECLARE2 t_c1_tname user_tables.table_name%TYPE;3 t_command varchar2(200);4 t_cid integer;5 t_total_records number(10);6 stat integer;7 row_count integer;8 t…

WPF 实现任务栏角徽

WPF开发者QQ群&#xff1a; 340500857 | 微信群 -> 进入公众号主页 加入组织欢迎转发、分享、点赞、在看&#xff0c;谢谢~。 01—效果预览效果预览&#xff08;更多效果请下载源码体验&#xff09;&#xff1a;一、TaskbarItemInfoExample.xaml代码如下 <Window x:Cla…

竞赛奇葩队名,学编程的人都是隐藏的段子手 | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅

[翻译]asp.net ajax xml-script教程(二)

原文地址&#xff1a;http://dotnetslackers.com/articles/atlas/xml_script_tutorial_part2.aspx asp.net ajax xml-script教程&#xff08;二&#xff09;原文发布日期&#xff1a;2006.12.11作者&#xff1a;Alessandro Gallo翻译&#xff1a;webabcd概述在xml-script教程的…

工具

豆约翰博客备份专家 http://www.appinn.com/douyuehan-blog-backups/ 博客备份工具BlogDown转载于:https://www.cnblogs.com/bing11/p/3539268.html

C程序优化之路(二)

本文讲述在编写C程序代码的常用优化办法&#xff0c;分为I/O篇&#xff0c;内存篇&#xff0c;算法篇&#xff0c;MMX汇编篇。 二&#xff0e;内存篇 在上一篇中我们讲述了如何优化文件的读写&#xff0c;这一篇则主要讲述对内存操作的优化&#xff0c;主要有数组的寻址&#x…

long 对应oracle,【转】oracle number与java中long、int的对应

C&num; base 64图片编码解码使用WinForm实现了图片base64编码解码的 效果图: 示例base 64编码字符串: /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKD ...MyBatis知多少(8)关系型数据库MyBatis的存在就是为了简化对关系数据库的访问.数据库的确非常复杂,要正确地使…