我正在开发一个微服务架构,目前每个服务都是用ruby开发的。
服务解耦的优点之一是将来可以将服务从ruby重构为另一种技术,比如Node.js
当我将来做这个重构的时候,我希望我的集成测试保持正常运行。
理想情况下,我希望在rspec (ruby)中开发集成测试,并通过HTTP让它们在非rails服务器上运行。
在rspec中是可能的吗?哪个工具可以提供这个需求?
RSpec是针对Ruby编程语言的行为驱动开发(BDD)框架。它用于单元测试。它不能与其他技术栈集成
然而,如果你只是在为你的web服务做集成测试,我认为Cucumber可以帮助你达到同样的目的。
黄瓜作为一种工具与技术无关。然而,当你为web服务/测试用例更改技术堆栈时,你必须以这样一种方式来设计你的集成测试,任何执行或编写测试用例的辅助库都可以很容易地被其他语言的库取代。
只要测试webservice公开的端点,而不是测试它们是如何实现的,它们就应该保持正常运行。
你可以通过在spock中编写集成测试来实现,spock是groovy中的一个漂亮的BDD框架,使用它你可以到达端点,如
GET /cars ---> Check for the list of cars
POST /cars ---> Add a car
GET /cars/1 ---> Get a specific car details
PUT /cars/1 ---> Edit a specific car
现在当你像这样测试时,不管实现是什么,因为你总是在测试接口。