我最近成了一名TDD狂热分子。解释这个概念并不困难。大多数人都尊重它背后的目的。但是,当我试图展示这个想法背后的实际过程时,最大的抱怨是:
“当我编写初始测试时,我讨厌Visual Studio如何智能化 试着猜猜我在做什么。这显然是错的,因为我没有 编写了API。它带我出去 当我必须修复所有的东西时的上下文 Intellisense猜错了。“
,不幸的是经常出现:
“TDD(或Visual Studio)糟透了”
以前从未真正打扰过我(我只是删除它猜错的东西),但我看到了问题。其他人做了什么来解决这个问题?明显的答案是:
P.S。我在SO(以及其他地方)的任何地方寻找这个问题所以如果我错过它,请随意标记为重复...好像你需要我的许可; - )
编辑:是的,我有Resharper,很棒。
答案 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所说,"购买钱可以买到的最好的工具" (我知道公司预算批准是另一项繁琐的事情。)