利用单元测试框架进行单元测试
作者:网络转载 发布时间:[ 2015/4/24 13:43:36 ] 推荐标签:单元测试 API 代码 框架
接下来可以创建测试了:
1 namespace Explorations
2 {
3 [TestClass]
4 public class ExampleTest
5 {
6 private PrivateObject privateObject;
7 const string PASSWORD = "letmein";
8
9 [TestInitialize]
10 public void TestInitialize()
11 {
12 privateObject = new PrivateObject(typeof(Example));
13 }
14
15 [TestMethod]
16 public void ComparePrivatePassword()
17 {
18 string password = (string)privateObject.GetField("password");
19 Assert.AreEqual(PASSWORD, password);
20 }
21
22 [TestMethod]
23 public void TestPrivateVerifyPassword()
24 {
25 bool accepted = (bool)privateObject.Invoke("VerifyPassword", PASSWORD);
26 Assert.IsTrue(accepted);
27 }
28 }
29 }
由于PrivateClass使用了反射,因此,必须将调用结果从通用Object类型转换成正确的类型。
PrivateObject用于访问类的实例成员,如果要访问非公有静态成员,则需要用到PrivateType类,它的接口与PrivateObject非常类似,也对反射代码进行了封装。
Visual Studio单元测试功能全面支持代码覆盖,代码覆盖会自动插入跟踪逻辑(插装过程)以监视测试执行过程中哪些代码执行到了。它重要的作用是发现那些在测试中没有涉及到的代码段。
说明单元测试的有效性的一条原则是,删除任何一行代码都会导致至少一个单元测试的失败。
启用代码覆盖并选中了要插装的程序集之后,接下来运行测试,从Code Coverage Results窗口中可以浏览覆盖的结果:

的代码覆盖并不意味着单元测试已充分了,正确的测试需要使用不同的数据对相同的代码进行多次测试。代码覆盖是测试有效性的一种度量手段,但肯定不是的。
使用测试影响分析可以在修改代码之后浏览哪些测试受到了代码更改的影响,这不于单元测试,甚至适用于那些先前已执行的针对某个生成的手动测试。
在使用测试影响分析之前,首先必须在VS内使用单元测试框架,并将源代码存储在TFS Version Control中,然后在运行单元测试时启用数据收集功能。如果单元测试是在本地或通过MTM(Microsoft Team Manager)运行的,那么必须将测试结果上传到TFS并将其与一个团队生成相关联之后才能进行测试影响分析。这里不做过多介绍。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系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的单元测试探索(二)

sales@spasvo.com