在Visual Studio 2012使用单元测试
作者:网络转载 发布时间:[ 2014/12/9 14:28:17 ] 推荐标签:单元测试 软件测试 VS
复制代码
public class XmlSerialization
{
private string filePath;
public XmlSerialization(string filePath)
{
this.filePath=filePath;
}
public bool WriteXml<T>(T model,string filePath=null)where T:class
{
bool result=false;
if(model==null)
{
return result;
}
if(string.IsNullOrEmpty(filePath))
{
filePath=this.filePath;
}
XmlSerializer serializer=new XmlSerializer(typeof(T));
using(TextWriter tr=new StreamWriter(filePath))
{
serializer.Serialize(tr,model);
tr.Close();
result=true;
}
return result;
}
public T ReadXml<T>(string filePath=null)where T:class
{
T model=null;
if(string.IsNullOrEmpty(filePath))
{
filePath=this.filePath;
}
XmlSerializer serializer=new XmlSerializer(typeof(T));
TextReader tr=null;
try
{
tr=new StreamReader(filePath);
model=(T)serializer.Deserialize(tr);
}
catch{}
finally
{
if(tr!=null)
{
tr.Close();
tr.Dispose();
}
}
return model;
}
}
复制代码
我们发现这个类的构造函数多了一个参数,是对象序列化后保存的路径,且该类对应的测试类都需要用到,因而我希望在每次测试进行单元测试前先将对象的构建,这是第六点笔记提供的“声明Attribute[TestInitialize]”(注意必须是public方法,我用private方法运行测试是不通过)。改造后的测试类如下:
复制代码
[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: otexists.seri");
Assert.IsNull(modelnull);
}
}
复制代码
还可以分析测试代码的覆盖率,如下图所示在测试资源管理器点击“运行”下的相应选项。
居然是,真不知道这个东西微软是怎么分析出来的。
把类XmlSerializationTest移到相应的项目,更改命名空间,在测试项目添加相应引用,测试通过。
将解决方案添加到TFS源码管理,我这边是用的是微软云TFS免费版。
收工。
VS提供了很多类型的测试,负载、UI等等测试,感觉还是蛮强大的。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
iOS单元测试mocha、chai、sinon和istanbul实现百分之百的单元测试覆盖率关于单元测试的总结及思考编写更好的Java单元测试的7个技巧Android单元测试框架Robolectric3.0介绍(一)使用Kiwi单元测试总结单元测试如此重要,为什么你不知道Python单元测试??使用装饰器实现测试跳过和预期故障对Controller的单元测试写好单元测试的10个技巧单元测试的重要性Angular单元测试系列??Component、Directive、Pipe 以及ServiceAndroid单元测试的整理提升单元测试体验的利器--Mockito使用总结iOS UnitTest单元测试Vue的单元测试探索(二)
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南