使用Visual Studio进行单元测试
使用Visual Studio进行单元测试
使用Visual Studio进行单元测试一、使用Visual Studio进行单元测试的几个建议
1.先写单元测试(依我愚见,应该是接口先行,如果有的话) -> 测试失败 -> 以最小的改动(即编写实际代码)使测试通过(而在VS2012中已经不能通过现有项目直接生成测试项目了,我觉得这个功能还是应该保留,微软总是这副德行,强迫用户适应他们的产品,但是又不得不适应);
2.不因单元测试而追加功能(代码),即逻辑不受单元测试影响;
3.改变了代码的逻辑(增删改),应及时运行单元测试;
4.在测试方法声明Attribute —— TestCategory("分类或特征名");
5.在单元测试项目添加Fakes程序集分离外部依赖(如数据库访问,获取配置信息等);
6.初始化单元测试类中的成员等信息,可添加方法并声明Attribute[TestInitialize](方法需为public);
二、下面我们以VS2012为例,来看一下如何在Visual Studio中进行单元测试
1.首先,右键点击解决方案(Solution)弹出右键菜单(Context)
选择添加(Add) - 新项目(New Project), 在给出的模版中,选择 Visual C# - Test -Unit Test Project 如图。
2.得到模版如图
3.在测试方法中(此处为默认的TestMethod1,一般修改为 需要测试的方法名+Test )添加自己需要测试的代码
例如添加类XmlSerializationTest,代码如下:
[TestClass]
public class XmlSerializationTest
{
private XmlSerialization serialization;
[TestInitialize]
public void InitTest()
{
this.serialization = new XmlSerialization(@"F:\\usermodel.seri");
}
[TestMethod]
public void TestWriteXml()
{
UserModel user = new UserModel();
bool flag = serialization.WriteXml<UserModel>(user);
Assert.IsTrue(flag);
Assert.IsFalse(serialization.WriteXml<UserModel>(null));
}
[TestMethod]
public void TestReadXml()
{
UserModel user = new UserModel();
user.LoginName = "aa";
serialization.WriteXml<UserModel>(user);
UserModel model = serialization.ReadXml<UserModel>();
Assert.IsNotNull(model);
Assert.AreEqual(user.LoginName, model.LoginName);
//路径不存在,应返回null
UserModel modelnull = serialization.ReadXml<UserModel>(@"F:\\notexists.seri");
Assert.IsNull(modelnull);
}
}
4。测试代码写好后, 即可点击上方菜单Test-Run- AllTests等,来进行测试
测试完毕后。下方会产生结果列表。红色为未通过的TestCase。若想对其进行DEBUG,可右击红色的TestCase,选择Debug selected Tests。修改后,也可右击想要重新测试的TestCase,选择Run Selected Tests.
- vue功能测试和生产环境切换(vue 单元测试的推荐插件和使用示例)
- 怎么用单元测试php(PHP使用phpunit进行单元测试示例)
- python语言案例教程单元测试(Python单元和文档测试实例详解)
- 单元测试中Assert类
- .Net单元测试的方法
- VS中使用Unit Test Generator进行单元测试
- 使用Visual Studio进行单元测试
- vue单元测试实例(Vue-Jest 自动化测试基础配置详解)
- 你只要花上20天记单词,英语成绩就能从57提到100(你只要花上20天记单词)
- 夕云天际飞,亢龙化太极(夕云天际飞亢龙化太极)
- 爱情可以当饭吃吗(怎么回复)
- 高考数学题(高考数学题基础题占多少分)
- 没钱只能吃土(没钱要吃土了幽默短信发朋友圈)
- 今年考高会很难吗(今年高考会考试吗)
热门推荐
- vscode如何配置python环境(VSCode Python开发环境配置的详细步骤)
- zabbix sender能否发送告警数据(python3实现zabbix告警推送钉钉的示例)
- 微信小程序function怎么使用(微信小程序在{{ }}中直接使用函数的方法示例)
- css行框高度与lineheight(CSS中height和min-height的区别)
- mysql的默认数据库例子在哪里(修改MySQL8.0 默认的数据目录快捷操作无配置)
- python yield 使用浅析(yii框架使用分页的方法分析)
- css修饰文本的方法(CSS常用文本样式总结)
- vue中router的具体用法(vue-router中hash模式与history模式的区别)
- dedecms怎么使用(DEDECMS网站系统目录权限设置教程)
- sqlserver表导入数据(在SQLserver数据库之间进行传表和传数据的图文教程)