在典型的
Java IDE(比如Intellij)中,工作测试驱动开发(TDD)样式意味着非常有效的工作流程,并且在通过测试完成代码后几乎不需要修改或替换.
与C#解决方案一样,Java项目具有将生产代码与测试代码分离的各种样式,但通常并行存在两个目录结构
> src
>测试
或者测试由src树中的命名空间分隔.然后是那个主题的无穷变化.
使用像Intellij这样的东西我可以创建我的“测试类/方法”,开始编码,动态生成对象,就像我去的那样,它们通常最终位于正确的位置,也就是生产代码所在的位置.当我完成后,我已经完成了. Java世界中的工具和IDE支持这110%.
现在体验Visual Studio(或实际上是R#体验).目前我在C#中执行TDD的(简化)工作流程是这样的(使用R#):
>在测试项目中创建测试类
>创建测试方法
>开始编码..生成类,接口等.我根据R#default在与测试类相同的文件中生成代码.
…
>当我完成后,我会转到每个类/接口/任何内容,并将文件移动到与其名称匹配的单独文件中(ctrl enter action).
>转到解决方案资源管理器并将测试项目中的类拖放到生产项目中.
我想摆脱一切4& 5.我还希望我的课程在第3步中直接在生产项目中生成.
我已经搜索了高低版本的Visual Studio扩展,可以帮助我解决这个问题.
问题1:如何通过TDD以今天的方式提高效率?
问题2:我是否应该采用另一种TDD工作流程/结构,最终为我提供更好的Visual Studio TDD体验? (这是另一个问题)
仍未得到答复
但请花时间在Resharper https://youtrack.jetbrains.com/issue/RSRP-424370中投票支持此功能
最佳答案 您可以删除第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();
}