Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 测试驱动开发-Spring应用_Java_Spring_Unit Testing_Tdd - Fatal编程技术网

Java 测试驱动开发-Spring应用

Java 测试驱动开发-Spring应用,java,spring,unit-testing,tdd,Java,Spring,Unit Testing,Tdd,我正在开发一个RESTAPI。我已经为功能测试做了Jmeter测试。我想添加单元测试,也希望从现在开始遵循测试驱动开发(TDD),以进行任何增强,并向现有项目添加新功能(该项目必然会变得非常复杂,并且没有任何单元测试) 在读了很多关于TDD的书之后,我对是否应该选择TDD有点困惑。有极端的观点支持和反对它 我想我只会遵循TDD来开发我的服务层,它只包含业务逻辑 对我的方法有什么建议吗?TDD不止这些。这不仅仅是一种检查系统外部工作是否正常的方法。TDD也是一种加速类开发的方法,即使它们不与其他系

我正在开发一个RESTAPI。我已经为功能测试做了Jmeter测试。我想添加单元测试,也希望从现在开始遵循测试驱动开发(TDD),以进行任何增强,并向现有项目添加新功能(该项目必然会变得非常复杂,并且没有任何单元测试)

在读了很多关于TDD的书之后,我对是否应该选择TDD有点困惑。有极端的观点支持和反对它

我想我只会遵循TDD来开发我的服务层,它只包含业务逻辑


对我的方法有什么建议吗?

TDD不止这些。这不仅仅是一种检查系统外部工作是否正常的方法。TDD也是一种加速类开发的方法,即使它们不与其他系统交互

将测试视为对以下问题的回答:

  • 我完成这门课的开发了吗
  • 我已经开发和测试的类在我做了更改后仍然可以正常工作吗
  • 如何将需求表示为源代码
  • 关于每个问题的解释:

  • 你怎么知道你已经写完一堂课了?测试可以告诉您,只有在您的类完成了它应该做的一切之后,才显示测试成功消息
  • 为了经常进行测试,您需要测试自动化
  • 每当你有一个新的需求,写一个新的测试来表示这个需求

  • TDD不仅仅是这样。这不仅仅是一种检查系统外部工作是否正常的方法。TDD也是一种加速类开发的方法,即使它们不与其他系统交互

    将测试视为对以下问题的回答:

  • 我完成这门课的开发了吗
  • 我已经开发和测试的类在我做了更改后仍然可以正常工作吗
  • 如何将需求表示为源代码
  • 关于每个问题的解释:

  • 你怎么知道你已经写完一堂课了?测试可以告诉您,只有在您的类完成了它应该做的一切之后,才显示测试成功消息
  • 为了经常进行测试,您需要测试自动化
  • 每当你有一个新的需求,写一个新的测试来表示这个需求

  • TDD是您在开发之前要测试的最佳实践之一。在开发应用程序/服务的每个步骤中,如果您破坏了以前的任何功能,您都会知道

    您走的是正确的道路,我会一直鼓励您使用TDD。如果你正在从头开始做一个项目,那就去做吧

    因为您的项目是一个现有的项目,所以在开始讨论所有现有功能的单元测试用例之前,这可能是一个令人头痛的问题

    因此,最好的方法是:

    • 在开始开发新功能之前,写下现有功能的所有单元测试用例
    • 在这样做的过程中,您可能会遇到很多惊喜,并且可能最终会重新分解很多代码。这将帮助您开发未来的新功能
    • 现在,由于您的代码看起来好多了,您可以为新功能启动TDD

    让我知道这是否有帮助。我在我的许多项目中都使用了TDD,对此我很满意。

    TDD是一种最佳实践,您可以在开发之前进行测试。在开发应用程序/服务的每个步骤中,如果您破坏了以前的任何功能,您都会知道

    您走的是正确的道路,我会一直鼓励您使用TDD。如果你正在从头开始做一个项目,那就去做吧

    因为您的项目是一个现有的项目,所以在开始讨论所有现有功能的单元测试用例之前,这可能是一个令人头痛的问题

    因此,最好的方法是:

    • 在开始开发新功能之前,写下现有功能的所有单元测试用例
    • 在这样做的过程中,您可能会遇到很多惊喜,并且可能最终会重新分解很多代码。这将帮助您开发未来的新功能
    • 现在,由于您的代码看起来好多了,您可以为新功能启动TDD

    让我知道这是否有帮助。我在我的许多项目中都使用了TDD,我对此很满意。

    因为您使用的是Spring,我建议对象到单元测试不应该是web服务。我会让它成为一个基于接口的POJO。行为不应受到作为REST部署的选择的影响

    对POJO要使用的对象的HTTP请求和响应进行封送和解封送可以是分开的


    这种安排还有一个额外的好处,即不需要为了测试而部署到容器。

    因为您使用的是Spring,所以我建议对象到单元测试不应该是web服务。我会让它成为一个基于接口的POJO。行为不应受到作为REST部署的选择的影响

    对POJO要使用的对象的HTTP请求和响应进行封送和解封送可以是分开的


    这种安排还有一个额外的好处,即不需要为了测试而部署到容器中。

    考虑在这里问这个问题:考虑在这里问这个问题:TDD并不总是需要的,也就是说,当需求发生变化时,需求的变化总是有可能的,但若你们有一个强大的测试用例,你们不应该受苦。在这里,他们将使用TDD开发spring服务层。我想知道我是否可以做这样的事情?这个链接很好,信息丰富。是的,您可以从服务层开始。但是要小心不要提出集成测试用例。在这种情况下,您可能还必须为现有功能写下测试用例。TDD并不总是需要的,即当需要时