zoukankan
html css js c++ java
使用NUnit和DynamicMock进行单元测试
using
System;
using
System.Collections.Generic;
using
System.Text;
using
NUnit.Framework;
using
NUnit.Mocks;
namespace
DynamicMockDemo
{
public
class
Person
{
public
Person(
int
id,
string
name)
{
this
.Id
=
id;
this
.Name
=
name;
}
private
int
id;
public
int
Id
{
get
{
return
id; }
set
{ id
=
value; }
}
private
string
name;
public
string
Name
{
get
{
return
name; }
set
{ name
=
value; }
}
}
public
interface
IDB
{
Person GetPersonById(
int
id);
IList
<
Person
>
GetPersons();
void
DeletePerson(
int
id);
}
[TestFixture]
public
class
Dome
{
[Test]
public
void
Test()
{
Person person1
=
new
Person(
1
,
"
aaa
"
);
Person person2
=
new
Person(
2
,
"
bbb
"
);
IList
<
Person
>
persons
=
new
List
<
Person
>
();
persons.Add(person1);
persons.Add(person2);
//
创建Mock对象
DynamicMock dbMock
=
new
DynamicMock(
typeof
(IDB));
//
模拟GetPersonById方法,传入1,返回person1
dbMock.ExpectAndReturn(
"
GetPersonById
"
, person1,
1
);
//
模拟GetPersons,返回persons
dbMock.SetReturnValue(
"
GetPersons
"
, persons);
//
模拟 DeletePerson,传入3,抛出异常
dbMock.ExpectAndThrow(
"
DeletePerson
"
,
new
Exception(
"
删除失败
"
),
3
);
//
获取IDB接口的Mock对象实例
IDB db
=
(IDB)dbMock.MockInstance;
Person testPerson
=
db.GetPersonById(
1
);
Assert.AreEqual(person1.Name, testPerson.Name);
IList
<
Person
>
testPersons
=
db.GetPersons();
Assert.AreEqual(
2
, testPersons.Count);
try
{
db.DeletePerson(
3
);
}
catch
(Exception e)
{
Assert.AreEqual(
"
删除失败
"
, e.Message);
}
}
}
}
查看全文
相关阅读:
多字段截取然后验证 js
web端上传图片,截取证件照
bootstrap学习
响应式网站设计心得
不懂这几个问题就落后了:Python、Android开发者必读!
这48个Java技术点,让你的面试成功率提升5倍!
C++之父谈C++:一天之内你就能学会出色使用C++
常用正则表达式
解决vs验证控件报错” WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping”问题
怎么就那么难啊我去
原文地址:https://www.cnblogs.com/xhan/p/1494766.html
最新文章
GitHub Pages自定义域名后每次hexo d都会失效解决
安装php-7.0.11
linux 快捷键
正则表达式囫囵自学基础/i/g/m和demo截取所有匹配指定开始和结束字符中间的字符串输出
自学vue基础,搭建vue项目,小总结
无人机的发展史
node 异步回调解决方法之yield
js异步编程技巧一
数据库备份并分离日志表(按月)sh 脚本
ajax 允许跨域html头设置
热门文章
腾讯php经历
node.js express 4.x 安装指南
30天的php学习之路——第一天开端
[js] 变量空值研究
前端给js和css加上时间戳,清除缓存,做版本控制
node.js安装和第一个nodejs项目(windows版本)
前端面试题
关于form表单里包裹的btn按钮
2017年前端框架、类库、工具大比拼
前端框架与类库
Copyright © 2011-2022 走看看