首页 科普 资讯 养生 问答 找医院 相关问答
首页> 问答

从零开始认识NUnit

发布网友 发布时间:2024-10-24 00:28

我来回答

1个回答

热心网友 时间:2024-11-02 06:28

  既然是从零开始 就先介绍一下NUnit () 一个 NET 框架下的单元测试框架 提供了类似于 JUnit的功能 也是 NET 框架下开发者应用最广泛的单元测试框架之一(其他的还包括 CSUnit 等等)

  它的基本原理是通过 NET 的反射机制 利用代码中的元数据(Attribute)来辨识到底有哪些单元测试 单元测试(Unit Test)是测试驱动开发(Test Driven Development TDD)很重要的一环 而TDD又是敏捷开发方法(比如极限编程 eXtreme Programming)的重要组成部分…… 总之 单元测试很重要就对了 ^_^ (有关TDD XP的详细介绍在博客园的很多blog上就有 当然 google 上就更多了)

  例子开始

   下载 安装 NUnit(最新版可能是 )

   很重要的步骤 测试一下 NUnit 是否安装成功

  方法 打开 NUnit File Open 选 NUnit 安装目录下的bin目录中的 nunit tests dll 这时NUnit 主窗口左部的树型列表中会出现很多个测试的名字 然后点 Run 按钮 接着测试就开始运行了 直到 NUnit 主窗口左部的树型列表中所有的测试前面都变成绿色 那就是成功了 (失败的测试会有红色的提示 没有运行的测试会有*的提示 在这一步中 有可能 Console Runner 那个测试集合会出现问题 万一出现问题 重启一下 NUnit 再 Run 一般都是没问题的)

   怎么在开发中使用 NUnit 框架?     )打开VS NET 新建一个 C# 的 Console 项目 在项目的 References 添加 nunit framework(References 在 Solution Explorer 窗口中 右键 Add Reference )

   )随便写一个类

  public class Account // 银行帐户类 {private float balance; // 账户的余额

  public void Deposit(float amount) // 存钱 {balance+=amount;}

  public void Withdraw(float amount) //取钱 {balance =amount;}

  public void TransferFunds(Account destination float amount) // 转账 {destination Deposit(amount);Withdraw(amount);}

  public float Balance{get{ return balance; }}public static void Main(string[] args){Account source = new Account(); // 新建个账户 source Deposit( F); // 存 Account destination = new Account(); // 又建了一个 destination Deposit( F); // 存 source TransferFunds(destination F); // 第一个账户转给第二个 }}

  这个类很简单 编译通过 运行 一切ok

   )在同一个项目中 增加一个用来测试 Account 类中的方法的测试类(里面的几个Attribute是最关键的)

  using NUnit Framework; // 千万别忘了这一行

  [TestFixture] // 这个Attribute说明 AccountTest 类中包含有测试 public class AccountTest{[Test] // 这个Attribute说明了 TestTransferFunds() 方法就是用来做测试的 // 一般测试方法的名字就是在被测试方法名前加上Test public void TestTransferFunds(){// 准备工作 Account source = new Account();source Deposit( F);Account destination = new Account();destination Deposit( F);

  source TransferFunds(destination F); // 转账

  // 利用 Nunit Framework 中的 Assert 类看看转账以后两个账户的余额是否正确 Assert AreEqual( F destination Balance);Assert AreEqual( F source Balance);}}

  然后编译一下 生成一个 exe 文件(如果要生成 DLL 的话 更改一下这个这个项目的 Output Type属性 改成 Class Library就可以了 这个改动还是在Solution Explorer 窗口中 项目名上 右键 属性 对于这个例子 生成DLL的话就不需要 Main() 方法了)

   )打开NUnit File Open 找到刚才编译生成的 exe 然后 Run 满眼可爱的绿色

  就说明测试都成功了^_^

  如果想看看测试失败的样子 可以把 Assert AreEqual() 里面的值改一下……

  例子中只用到了 Test Fixture 和 Test 这两个Attribute 其他更多的用法在 NUnit 文档中写得十分清楚 文档中也有些更好的例子……

  自动化的单元测试有什么用? 答 省时省力 当一个系统需要测试的类/方法 成千上万时 手工的测试方法(用控制台打印出信息等等)的效率会比较低

lishixin/Article/program/net/201311/12066
Xeon X5460 和 fx6300哪个好 我主要玩游戏 显卡hd6770 d5 能通杀... 内存DDR2 800 4g CPUx5460 3.16GHZ 显卡七彩虹网驰gtx650ti 1g_百度... 我的CPU是X5460,3.16G的,请问GTX970能用吗?现在还不想换平台啊,打算慢... x5460配什么主板最合适? 在拼多多上购买的商品质量保证十年而不到一年坏了,怎么办?3千多元了... 拼多多电子产品质保多久 交管12123APP怎么注册_注册方法介绍 魔兽世界怀旧服部落21-22灰谷升级,任务路线详解 纯任务升级详细路线 节省时间 天龙八部手游日常完成先后顺序推荐 苹果手机是哪个国家的牌子 qq群管理员最多几个? qq群匿名说话的人可以找到吗? 怎么查看qq匿名消息谁发? 主动辞职和让单位开除哪个合适? 请问风寒感冒能洗澡吗 excel怎样将日期换算成小时格式 电动车酒驾的处罚标准具体是什么 路虎极光胎压按键在哪? 涛岛潜水学校住宿吗 涛岛潜水学校推荐 如何在抖音中进行自动旋转进全屏设置? 行政行为的分类是? 支付宝怎么交违章罚款 处理违章操作步骤 我的右肾已经重度积水了 还有多发性结石 医生说要切除 请问有什么好... 患病六年 医生说我的右肾多发结石并重度积水 已基本无功能了 建议切除... 男生突然留长发是不是心理抑郁的表现 “柘”这个字怎么读? 如何运用鼠标 人心换人心,如果换不来,那就只能换人了 ...派出所来人把人带走了 前提野兔等动物一只没逮到 犯 最近发现儿子.总时不 时的喜欢抠手指头!还说..妈妈.剪剪.剪剪!!_百 ... 求助,孩子总是忍不住抠手指头,我怎么说他都不听,大家有啥办法呢?_百度... ...地预防传染病,下列几种措施中属于切断传播途径的是( )A.不吃腐败... ...遭受了非典型肺炎的严峻考 验,非典型肺炎属于呼吸呼吸殂 传染... 对于传染病管理传染源切断传播途径该怎么做? 小白熊狗和大 急!两个月大的小白熊犬,前两天是先吐(饭,之后是胆汁)后来又拉稀,现在是... 宠物狗小白熊3个月大了怎么喂养? ...说长大后是中型犬 我也不知道被骗了没 两个月大 不爱动 感觉有些... 两个月大的小白熊拉稀 赛博朋克2077猎杀超梦线索在哪 教你找到最后一个线索 老公出轨了怎么搜集证据? 新奇骏保修期天窗漏水该车主掏工时费了, 新乡的市内公交几点发车 河南新乡公交车怎么付钱 新乡公交怎么用app乘车支付 到底应该怎么挑选翡翠 女生千万不要做这“六”种人 在cba中浙江有几支球队,浙江有哪几个CBA球ɘ 浙江金牛主场在哪 win10ie浏览器无法访问此网页 ...皮还干了,一块一块的,跟头皮屑似的。请问怎么解决,什 9种常见的测试以及ATDD,TDD,BDD 3者的区别 ...一下我脸上有很多斑,我现在16岁目前在用相宜本草的红景天幼可不可以... ...抓起来很舒服,很容易破皮,结疤像头皮屑一样的白色的很薄的皮_百度... 睾丸外表有点痒,有像是头皮屑 制造压力容器需要什么设备 17岁还没有瞒18岁可以用红石榴套装吗 谁可以告诉我日本说的“片假名”“平假名”是什么意思?是不是指中文... 辽事通如何交医保 辽事通社保缴费配置有误 被喜欢的人拉黑作何感受? 辐射4狗肉哪里有 辐射4狗狗在哪里 请为三峡写一段解说词,要简单一些,不要太长。语文帝快快降临啊!!! 小石谭记解说词 我有这么老吗作文300字 坦克世界老王代练怎么样 怎样缩短月经天数 坦克世界老王代练怎么样 电动机放在地上能工作,于设备相连就跳闸是怎么回事? ...D&G等奢侈品在中国的橱窗展示或店面设计的设计师是谁? 睾丸瘙痒且有类似头皮屑的粉状物可否抹达可宁?? 皖亊通城乡医保信息显示服务端错误怎么办? ...过敏不但身上有小包,头皮就像包皮一样然后头皮还多这是怎么... ...要重重庆出发到江西,一般要坐好多时间,车票大慨是好多? 孟母教子勤学的注释 女生的理想男朋友身高是多少呢? ...到江西新余,一般要坐好多时间,车票大慨是好多? 960.2÷1000约等于多少? (保留两位小数) 从重庆到江西南昌火车票是多少钱? 重庆火车到江西的火车有吗?2017年2月4日有火车票吗。要多少钱车票。要... 重庆大渡口到江西抚州南城要坐什么车,总共多少钱? ...我想先到南昌再到瑞金, 我能在重庆买到南昌到瑞金的异地火车票... 结婚的时候有哪些钱不能省啊? 星球大战绝地幸存者预购奖励是什么 结婚都有哪些支出?女方的 问道手游七杀阵副本该如何过 七杀阵副本过关攻略讲解 蟹肉豆腐怎么做才有绝妙的口感和味道? 女孩一个人去旅行安全吗?带书包还是旅行包 问道手游兰若寺怎么过 小BOSS姥姥击杀攻略 ...女朋友把你的手机号码备注 从原来的(老公或者老婆)改成(小* 例如...
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com