2017-06-21 6 views
2

キュウリルビーでいくつかの新しいことを試して、私はキュウリ表現を発見しました。キュウリルビー - キュウリ表現

私が試した登録パラメータ:

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 

それはGiven "the expression" does workGiven "the expression" does not workと一致していません - それは、必要があり、単純に来ますステップスニペットで戻って

誰かが間違っていることを知っていますか?

EDITは、基本的な "INT" キュウリの表現はどちらか動作していない、そしてそれが組み込まれるべきであることが判明。

Given "I want {int} potatoes" do |number| 
puts "#{number} potatoes" 
end 

例として、And I want 7 potatoesと一致していません。

使用:

  • キュウリv3.0.0.pre.1
  • キュウリ、表現のV3.0.0
  • ルビーV2.4.1
+1

ルーキーのキュウリ表現はまだ実際には実装されていないかもしれません。 [サポートを追加するための問題](https://github.com/cucumber/cucumber-ruby/issues/1002)はまだ開いた状態です。 –

答えて

2

キュウリ式はV3.0.0からご利用いただけます(https://github.com/cucumber/cucumber-ruby/issues/1002#issuecomment-332734877参照)。しかし、カスタムパラメータタイプを追加することは現時点では文書化されていないようで、私はそれを行う方法を見つけるためにかなり掘り下げなければなりませんでした(Cucumber::Glue::Dsl class参照)。私の場合は

私はフォーマットYYYY-MM-DDに一致するようにdateパラメータタイプを追加したいので、私は次の内容で(私はRailsアプリケーションをテストするためにキュウリを使用しています)supportディレクトリに新しいファイルparameter_types.rbを作成:

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

ParameterTypeあなたがフックを定義するために使用することができるなどAfterBefore、などの方法です。同じファイルに追加することで、より多くのパラメータタイプを追加できます。

+0

人生をより安全にする、間違ったgit repoを見た、thx – lab419