Visual studio 如何使VisualStudio中的TDD不那么痛苦?

Visual studio 如何使VisualStudio中的TDD不那么痛苦?,visual-studio,tdd,Visual Studio,Tdd,我最近有点像TDD的狂热者。解释这个概念并不难。大多数人尊重它背后的目的。然而,当我试图展示想法背后的实际过程时,最大的抱怨是: “当我编写初始测试时,我讨厌VisualStudioIntelliSense的方式 试着猜我在做什么。很明显这是错误的,因为我没有 API还没写完呢,它让我大吃一惊 当我必须修复所有 智能感知猜错了。” 不幸的是,这通常表现为: “TDD(或Visual Studio)太差劲了” 它以前从来没有真正困扰过我(我只是删除了它猜错的东西),但我看到了问题所在。其他人都做了

我最近有点像TDD的狂热者。解释这个概念并不难。大多数人尊重它背后的目的。然而,当我试图展示想法背后的实际过程时,最大的抱怨是:

“当我编写初始测试时,我讨厌VisualStudioIntelliSense的方式 试着猜我在做什么。很明显这是错误的,因为我没有 API还没写完呢,它让我大吃一惊 当我必须修复所有 智能感知猜错了。”

不幸的是,这通常表现为:

“TDD(或Visual Studio)太差劲了”

它以前从来没有真正困扰过我(我只是删除了它猜错的东西),但我看到了问题所在。其他人都做了些什么来回避这个问题?显而易见的答案是:

  • 在编写测试时关闭intellisense,然后在编写API时重新打开它
  • 在记事本++之类的东西中编写测试,然后在感到高兴时复制到VS中
  • 别抱怨了
  • 另外,我在SO(和其他地方)到处寻找这个问题,所以如果我错过了,请随意标记为重复。。。好像你需要我的许可;-)


    编辑:是的,我有Resharper,它太棒了。

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

    学会忽略Intellisense,获得ReSharper。然后编写所需的代码,让ReSharper创建shell,最终编写实现代码。

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

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

    学习使用Esc键并开始思考您正在编程的内容。Intellisense是一把双刃剑,它既能加快编码速度,又能让人们停止思考自己在做什么。TDD是关于思考的,而不是盲目地允许IDE为您完成工作。当弹出的Intellisense小框出现时,只需按Esc键,它就消失了,没有填充任何内容

    另外,获得重新竖琴。这对于VisualStudio中的编程来说是绝对必需的,但对于TDD来说更是如此


    (顺便说一句,VisualStudio确实很差劲)。

    学习使用Esc键并开始思考您正在编程的内容。Intellisense是一把双刃剑,它既能加快编码速度,又能让人们停止思考自己在做什么。TDD是关于思考的,而不是盲目地允许IDE为您完成工作。当弹出的Intellisense小框出现时,只需按Esc键,它就消失了,没有填充任何内容

    另外,获得重新竖琴。这对于VisualStudio中的编程来说是绝对必需的,但对于TDD来说更是如此


    (顺便说一句,VisualStudio确实很糟糕)。

    暂时关闭Intellisense


    从菜单中选择:工具..选项..文本编辑器,然后关闭“自动列表成员”和“参数信息”。

    暂时关闭Intellisense


    从菜单中选择:工具..选项..文本编辑器,然后关闭“自动列表成员”和“参数信息”。

    如果您的公司愿意,请他们为您购买NCrunch extension。如果他们不是,试着说服他们。它是一个并发的测试运行程序,它将传统的TDD时间减少了一半(对我来说)。不必在编写实现后返回并运行测试,或者在编辑器上获得异常(断言异常)的正确信息,并且在编写代码时立即获得反馈,这简直是太棒了!我认为这个工具使切换到TDD更加容易。我觉得使用RGR方法的TDD非常乏味和耗时(没有NCrunch),但非常值得。正如Joel Test中的一点所说,“购买金钱能买到的最好的工具”(我知道公司预算审批是另一件乏味的事情)。

    如果您的公司愿意,让他们为您购买NCrunch extension。如果他们不是,试着说服他们。它是一个并发的测试运行程序,它将传统的TDD时间减少了一半(对我来说)。不必在编写实现后返回并运行测试,或者在编辑器上获得异常(断言异常)的正确信息,并且在编写代码时立即获得反馈,这简直是太棒了!我认为这个工具使切换到TDD更加容易。我觉得使用RGR方法的TDD非常乏味和耗时(没有NCrunch),但非常值得。正如Joel Test中的一点所说,“购买金钱能买到的最好的工具”(我知道公司预算审批是另一件乏味的事情)。

    我很高兴我不是唯一一个这样看待Visual Studio的人。我是在Eclipse、JDeveloper、NetBeans中进行Java开发的最新皈依者(或义务兵),现在正在做C#。我第一次打开Visual Studio开始编写代码,并立即问“嘿,所有的标准IDE功能都在哪里?”“我很高兴找到了ReSharper。我承认,JetBrains提供的几乎所有东西都很棒。我正在使用RubyMine和MindManager,我正在使用的Java开发工具使用IntelliJ Idea而不是Eclipse。很好的东西。Res+1