如何让Visual Studio中的TDD减少痛苦?

时间:2009-08-11 16:49:02

标签: visual-studio tdd

我最近成了一名TDD狂热分子。解释这个概念并不困难。大多数人都尊重它背后的目的。但是,当我试图展示这个想法背后的实际过程时,最大的抱怨是:

  

“当我编写初始测试时,我讨厌Visual Studio如何智能化   试着猜猜我在做什么。这显然是错的,因为我没有   编写了API。它带我出去   当我必须修复所有的东西时的上下文   Intellisense猜错了。“

,不幸的是经常出现:

  

“TDD(或Visual Studio)糟透了”

以前从未真正打扰过我(我只是删除它猜错的东西),但我看到了问题。其他人做了什么来解决这个问题?明显的答案是:

  1. 编写测试时关闭intellisense,然后在编写API时将其重新打开。
  2. 将您的测试写入Notepad ++之类的内容,然后在您认为自己满意的时候复制到VS中
  3. 停止抱怨
  4. P.S。我在SO(以及其他地方)的任何地方寻找这个问题所以如果我错过它,请随意标记为重复...好像你需要我的许可; - )

    编辑:是的,我有Resharper,很棒。

5 个答案:

答案 0 :(得分:5)

学会忽略智能感知,并获得ReSharper。然后编写你想要的代码,让ReSharper创建你最终编写实现代码的shell。

答案 1 :(得分:5)

学习使用Esc键并开始考虑您的编程。 Intellisense是一把双刃剑,因为它既可以加快编码速度,也可以让人们不再考虑他们在做什么。 TDD就是思考,而不是盲目地允许IDE为您完成工作。当出现小弹出智能感知框时,只需点击Esc即可消失而不会填充任何内容。

另外,请到Resharper。这对于Visual Studio中的编程是绝对必需的,但对TDD来说则是双倍的。

(顺便说一下,Visual Studio确实很糟糕。)

答案 2 :(得分:3)

错误......如果我错了,请纠正我,但我个人喜欢智能感知的快速代码分析。特别是与Resharper相结合,它使TDD成为一个真正有趣的过程。您编写了一个尚未定义的类和方法的测试,然后使用Resharper极快地生成存根,使其编译,然后在测试成功运行时添加功能,然后根据需要重构并冲洗并重复。

答案 3 :(得分:0)

暂时关闭智能感知。

从菜单中选择:Tools..Options..Text Editor,然后关闭“Auto List Members”和“Parameter Information”。

答案 4 :(得分:0)

如果贵公司愿意,让他们为你们购买NCrunch扩展程序。如果不是,请尝试说服他们。它是一个并发的测试运行器,它将传统的TDD时间缩短了一半(对我而言)。编写实现后不必返回并运行测试,或者在编辑器上获取异常(断言异常),并在编写代码时立即获得反馈,这简直太棒了!我认为这个工具可以更轻松地切换到TDD。我认为使用RGR方法的TDD非常繁琐且耗时(没有NCrunch),非常值得。正如Joel Test所说,"购买钱可以买到的最好的工具" (我知道公司预算批准是另一项繁琐的事情。)