我正在开发一个 REST API。我已经为功能测试进行了 Jmeter 测试。我想添加单元测试,也想从现在开始遵循测试驱动开发(TDD)来进行任何增强并为我现有的项目添加新功能(这必然会变得非常复杂,并且没有任何单元测试到位) .
在阅读了很多关于 TDD 的内容后,我对是否应该选择 TDD 有点困惑。有极端的观点支持和反对它。
我想我只会遵循 TDD 来开发我的服务层,它只包含业务逻辑。
关于我的方法有什么建议吗?
我正在开发一个 REST API。我已经为功能测试进行了 Jmeter 测试。我想添加单元测试,也想从现在开始遵循测试驱动开发(TDD)来进行任何增强并为我现有的项目添加新功能(这必然会变得非常复杂,并且没有任何单元测试到位) .
在阅读了很多关于 TDD 的内容后,我对是否应该选择 TDD 有点困惑。有极端的观点支持和反对它。
我想我只会遵循 TDD 来开发我的服务层,它只包含业务逻辑。
关于我的方法有什么建议吗?
TDD 不止于此。这不仅是您检查系统外部是否正常工作的一种方式。TDD 也是一种加速类开发的方法,即使它们不与其他系统交互。
将测试视为对以下问题的回应:
每个问题的解释:
Since you're using Spring, I'd suggest that the object to unit test should not be a web service. I'd make it an interface-based POJO. The behavior should not be affected by the choice to deploy as REST.
Marshaling and unmarshaling the HTTP request and response to objects for the POJO to consume can be separate.
This arrangement will have the added benefit of not requiring deployment to a container in order to test.
TDD 是在开发之前进行测试的最佳实践之一。如果您破坏了任何先前的功能,您将知道在开发应用程序/服务的每一步。
你走在正确的道路上,我总是鼓励使用 TDD。如果您正在从头开始从事一个项目,那么就去做吧。
由于您的项目是一个现有项目,在您涵盖所有现有功能的单元测试用例之前,它可能会让人头疼。
所以最好的方法是:
让我知道这是否有帮助。我在很多项目中都使用过 TDD,对此我很满意。