Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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
Ruby 黄瓜红宝石-黄瓜表达式_Ruby_Cucumber - Fatal编程技术网

Ruby 黄瓜红宝石-黄瓜表达式

Ruby 黄瓜红宝石-黄瓜表达式,ruby,cucumber,Ruby,Cucumber,在Cucumber Ruby中尝试一些新事物,我发现了他们的Cucumber表情 我已尝试注册参数: require 'cucumber/cucumber_expressions/parameter_type' require 'cucumber/cucumber_expressions/parameter_type_registry' Cucumber::CucumberExpressions::ParameterTypeRegistry.new.define_parameter_type(

在Cucumber Ruby中尝试一些新事物,我发现了他们的Cucumber表情

我已尝试注册参数:

require 'cucumber/cucumber_expressions/parameter_type'
require 'cucumber/cucumber_expressions/parameter_type_registry'

Cucumber::CucumberExpressions::ParameterTypeRegistry.new.define_parameter_type(Cucumber::CucumberExpressions::ParameterType.new(
    'optional_not',
    String,
    /n't| not|/,
    lambda {|s| String.new(s)}
))

Cucumber::CucumberExpressions::ParameterTypeRegistry.new.define_parameter_type(Cucumber::CucumberExpressions::ParameterType.new(
    'string_in_double_quotes',
    String,
    /"[^"]*"/,
    lambda {|s| String.new(s)}
))
但当我有一个步骤定义时,例如:

Given "{string_in_double_quotes} does{optional_not} work" do |thing, invert|
   invert = invert.gsub(' ', '')
   if invert == 'n\'t' or invert == 'not'
      # Something here
   else
      # Something here
   end
end
它不匹配
给定的“表达式”不起作用
给定的“表达式”不起作用
——它应该这样做,并返回一个步骤片段

有人知道我做错了什么吗

编辑

事实证明,基本的“int”cumber表达式也不起作用,应该内置

Given "I want {int} potatoes" do |number|
 puts "#{number} potatoes"
end
不匹配,例如,我想要7个土豆

使用:

  • cucumber v3.0.0.pre.1
  • 黄瓜表达式v3.0.0
  • ruby v2.4.1

Cucumber表达式可从v3.0.0获得(请参阅:)。然而,添加一个自定义参数类型目前似乎没有文档记录,我不得不深入研究如何做到这一点(请参阅)

在我的例子中,我想添加一个
date
参数类型来匹配格式
YYYY-MM-DD
,因此我在
support
目录中创建了一个新文件
parameter\u types.rb
(我正在使用Cucumber测试Rails应用程序),内容如下:

ParameterType name:             'date',
              type:             Date,
              regexp:           /\d{4}-\d{2}-\d{2}/,
              transformer:      ->(str) { Date.parse(str) },
              use_for_snippets: true

参数类型
是一种类似于
之后
之前
等的方法,可用于定义挂钩。通过将参数类型附加到同一个文件中,可以添加更多的参数类型。

Cucumber表达式可能还没有在Ruby中实际实现。仍处于打开状态。文档现在可在此处获得:。Ruby的渲染已中断,但已在中修复