我正在开发一个微服务架构,目前每个服务都是用ruby开发的。
解耦服务的优势之一是将来能够将服务从ruby重构到另一种技术,比如Node.js
当我在未来的某个时间进行重构时,我希望我的集成测试能够继续运行。
理想情况下,我希望在rspec (ruby)中开发集成测试,并通过HTTP使它们在非rails服务器上运行。
使用rspec可以做到这一点吗?哪种工具可以满足这一要求?
发布于 2015-11-07 16:22:07
RSpec是Ruby编程语言的行为驱动开发框架。它用于单元测试。它不能与其他技术堆栈集成
但是,如果这一切都是为了对您的web服务进行集成测试,我认为Cucumber将帮助您实现同样的目标。
黄瓜作为一种工具是与技术无关的。然而,您必须以这样一种方式设计您的集成测试:当您更改技术时,执行或编写测试用例的任何帮助器库都可以很容易地替换为其他语言的库。for服务/测试用例的堆栈。
发布于 2015-11-07 21:04:08
只要您测试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现在,当你像这样测试时,实现是什么并不重要,因为你总是在测试接口。
https://stackoverflow.com/questions/33289391
复制相似问题