Ruby on rails 使用ruby进行系统测试(可能是rspec)

Ruby on rails 使用ruby进行系统测试(可能是rspec),ruby-on-rails,ruby,testing,rspec,Ruby On Rails,Ruby,Testing,Rspec,有没有办法用ruby进行系统测试 我正试图测试一个多线程服务(在jar文件中以华而不实的格式分发),只使用SOAP输入和STDOUT作为输出,这就是我所拥有的全部。我需要创建自定义的,而不是琐碎的场景,并寻找最好的方法来做到这一点。谷歌对此没有帮助 软件或硬件的系统测试是在完整的集成系统上进行的测试,以评估系统是否符合其规定的要求。系统测试属于黑盒测试的范围,因此不需要了解代码或逻辑的内部设计 更新: 我想我不得不说,我有3个独立的组件,它们之间有相互作用。我说的这项服务就像是另外两项服务的代理

有没有办法用ruby进行系统测试

我正试图测试一个多线程服务(在jar文件中以华而不实的格式分发),只使用SOAP输入和STDOUT作为输出,这就是我所拥有的全部。我需要创建自定义的,而不是琐碎的场景,并寻找最好的方法来做到这一点。谷歌对此没有帮助

软件或硬件的系统测试是在完整的集成系统上进行的测试,以评估系统是否符合其规定的要求。系统测试属于黑盒测试的范围,因此不需要了解代码或逻辑的内部设计

更新
我想我不得不说,我有3个独立的组件,它们之间有相互作用。我说的这项服务就像是另外两项服务的代理。如果我刚开始写代码,我需要重复很多功能。因此,是的,我正在寻找一些框架来模拟服务和创建多种场景的能力。

是的,Ruby非常适合进行系统或应用程序级测试

我推荐你。Cucumber是一个Ruby应用程序,它允许您定义特定于您的环境的外部DSL(域特定语言),然后使用该DSL编写和运行测试

以下是Cumber测试示例(来自Cumber主页):

这是用您定义的迷你语言编写的。这些“步骤定义”在Ruby中使用Cucumber的内部DSL:

Given /I have entered (.*) into the calculator/ do |n|
  calculator = calculator.new
  calculator.push(n.to_i)
end
这些步骤定义将您的自定义外部DSL与测试中的代码或系统联系起来。本例测试一个简单的Ruby类,但Cucumber适合于库或应用程序的集成测试

保存不是问题。步骤定义可以调用其他步骤定义,因为它们是用Ruby编写的,所以您可以轻松地将共享代码放入模块或类中,供步骤定义使用


剩下要回答的问题是Ruby及其可用库是否具有驱动测试环境所需的功能。Ruby是一种很好的“粘合”语言,能够轻松运行其他程序。它还有一组相当好的库(称为“RubyGems”),包括几个可以执行soap的库(例如)。库可用于处理XML和与各种协议(HTTP、FTP等)的接口。

任何(合理的)语言都可以发送SOAP请求和读取标准输出。您是否正在寻找一个框架来构建它们?图书馆能帮助你吗?您尝试过哪些不适合您的功能?@NickVeys是的,一些框架,能够创建模拟并保持代码干燥,而不是重复其他组件的功能。看一下更新
Given /I have entered (.*) into the calculator/ do |n|
  calculator = calculator.new
  calculator.push(n.to_i)
end