范尼是德鲁伊

matthew的技术博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  由于项目原因,我需要快速学习moq framework,本着实践出真知的原则,我打开了visual studio,打算尝试真实的使用moq,写一些实验代码来学习学习。在随意写了一些使用moq代码后,我渐渐发现了以下问题:

  1. 因为我是随手写的,写完之后很快就有又更改了,所以之前写过什么很快就忘记了
  2. 就算我把之前写的代码全部保留,我也很难确定之前的代码是否会对之后的代码产生影响(比如某些全局变量在前面被打开,但是没有关闭,会影响到后面功能的运行)
  3. 当我全部写完之后再回过头来复习,我无法很快明确我第一段代码表述的内容,毕竟是没有接触过的框架(估计自己真的老了)

  那么,我到底想要干什么的输出结果才满意呢?

  •   一些独立的代码片段,里面包含新框架的使用方法
  •   可以运行!!!
  •   最好能让我通过代码马上能明确我的目的(比如是这段代码是使用框架来写文件,还是弹出对话框)

  终于,我找到了完全满足我需求的方式,那就是写测试

[Test]
public void should_get_what_you_setup()
{
    var mock = new Mock<A>();
    mock.Setup(m=> m.F()).Returns(1);
    mock.Object.F().ShouldBe(1);
} 

  上面就是我写的测试,你也可以叫它为可运行的文档。接着在半小时之内,我大概写出了20多个测试来,不,应该是可运行的文档,看着这些文档,装逼的认为比官网上提供的文档要好的多。

  当我们在学习新知识时,尽量让自己的学习有输出,而且输出具有高可读性,上下文相关,甚至可运行,这样该多好呀~~反观有些项目,除了可以运行之外,代码及不可读,也不能快速提供上下文,就那么静静的躺在那里,没有一个人敢碰。如果我们给它加上测试,让每一个方法都有一个可以运行的文档,你还会说遗留代码是个坑么?

  下次你在学习新知识的时候,不妨尝试一下吧~~

posted on 2012-05-13 00:04  范尼是德鲁伊  阅读(404)  评论(0编辑  收藏  举报