【发布时间】:2014-11-10 19:35:03
【问题描述】:
在典型的 Java IDE(比如 Intellij)中,工作测试驱动开发 (TDD) 风格意味着非常高效的工作流程,并且在您通过测试完成代码后几乎不需要修改或更改。
Java 项目与 C# 解决方案一样,有多种将生产代码与测试代码分开的方式,但通常有两个并行的目录结构
- 源代码
- 测试
或者测试在 src 树中被命名空间分隔。然后在这个主题上无穷无尽的变化。
使用 Intellij 之类的东西,我可以创建我的“测试类/方法”,开始编码,随时生成对象,并且它们通常会出现在正确的位置,即生产代码所在的位置成为。当我完成时,我完成了。 Java 世界中的工具和 IDE 支持这 110%。
现在体验 Visual Studio(或者实际上是 R# 体验)。目前我在 C# 中进行 TDD 的(简化的)工作流程是这样的(使用 R#):
- 在测试项目中创建测试类
- 创建测试方法
- 开始编码.. 生成类、接口等。我根据 R# 默认在与测试类相同的文件中生成代码。 ...
- 完成后,我会转到每个类/接口/任何内容,并将文件移动到与其名称匹配的单独文件中(ctrl+enter 操作)。
- 转到解决方案资源管理器并将类从测试项目拖放到生产项目中。
我想摆脱所有 4 和 5。我还希望我的类在步骤 3 中直接在生产项目中生成。
我已经到处搜索了可以帮助我解决此问题的 Visual Studio 扩展。
问题 1:我怎样才能像现在这样通过 TDD 提高工作效率?
问题 2:我是否应该采用另一种 TDD 工作流/结构,最终在 Visual Studio 中为我提供更好的 TDD 体验? (这是一个替代问题)
无人回答 但请花时间在 Resharper https://youtrack.jetbrains.com/issue/RSRP-424370 中为这个功能投票
【问题讨论】:
-
否决者请解释一下?这是一个很好的问题,有谁知道如何使用Generate Method Stub 来实现这一点 - 即直接在哪里(解决方案\项目\类)应该创建存根?对我来说,这个功能对于 JetBrains 的人来说似乎是个好主意。
-
从创建单独的文件开始,然后使用 Window -> Split。
-
@mxmissile 请详细说明如何使用拆分窗口来避免第 4 步和第 5 步。我很感兴趣!
-
我不明白这样做 3 的原因。您为什么不创建最终会用到的生产代码?
-
@BrianRasmussen 我不确定如何解决这个问题。也许我对 TDD 持极端态度,但我实际上希望当我编写代码时它不存在,我希望 IDE 只是“按我说的去做”。我的意思是,编辑可以自己解决所有问题,那我为什么要这样做。叫我懒惰,但我相信这是在编码方面非常务实的关键之一。
标签: c# visual-studio tdd resharper