在典型的Java IDE(比如Intellij)中,工作测试驱动开发( TDD )样式意味着非常高效的工作流程,在完成测试代码后几乎不需要修改或替换。
Java项目,就像C#解决方案一样,有各种样式将生产代码与测试代码分开,但通常有两个并行的目录结构
或测试由src树中的命名空间分隔。然后是那个主题的无穷变化。
使用像Intellij这样的东西我可以创建我的"测试类/方法",开始编码,动态生成对象,就像我去的那样,它们通常会在正确的位置结束,也就是说,在哪里生产代码应该是。当我完成后,我已经完成了。 Java世界中的工具和IDE支持这110%。
现在体验Visual Studio(或实际上是R#体验)。目前我在C#中执行TDD的(简化)工作流程是这样的(使用R#):
我想摆脱一切4& 5.我还希望我的课程在第3步中直接在生产项目中生成。
我已经搜索了高端和低端的Visual Studio扩展程序,可以帮助我解决这个问题。
问题1:如何以今天的方式提高TDD效率?
问题2:我是否应该采用另一种TDD工作流/结构,最终为我提供更好的Visual Studio TDD体验? (这是另一个问题)
保持未接听的 但请花点时间在Resharper https://youtrack.jetbrains.com/issue/RSRP-424370
中投票支持此功能答案 0 :(得分:2)
您可以删除第4步和第4步。 5使用Visual Studio使用Generate Method Stub功能, Resharper位分散了我的注意力。
创建两个项目:
解
| PROJECT1
_ Quiz.cs
| UnitTestProject
_ UnitTestClassQuiz.cs
<小时/> 1.在Project1中创建一个名为Quiz的空类 2.在UnitTestClassQuiz.cs中创建单元测试,例如:
using Project1;
private class UnitTestClassQuiz
{
[TestMethod]
public void ShouldReturnDivisibles()
{
//Arrange
Quiz q = new Quiz();
//Act
var actual = q.ReturnDivisibles(60)
此时VS会在'ReturnDivisibles'功能下有一条红色波浪线,因为它未声明!将鼠标悬停在这个未声明的“ReturnDivisibles”函数上,你会看到一个蓝色的下划线/下划线,点击它,它会给你一个上下文菜单,其中包含“Generate Method Stub”选项。
当您生成方法存根时,将在Project1的Quiz类中创建一个函数,例如:
public object ReturnDivisibles(int p)
{
throw new NotImplementedException();
}