2017-04-07 10 views
0

でimplizit変数の割り当てを簡素化し、次のrobotframeworkコードの例を考えてみます。は/ robotframework

*** Variables *** 
${VAR_1}   any value 
${VAR_2}   another value 

*** Test Cases *** 
For Example only 
    ${VAR_1}= Some Conversion ${VAR_1} 
    ${VAR_2}= Some Conversion ${VAR_2} 
    A User Keyword ${VAR_1} ${VAR_2} 

Desired Notation 
    A User Keyword Some Conversion ${VAR_1} Some Conversion ${VAR_2} 

*** Keywords *** 
Some Conversion 
    [Arguments] ${value_to_convert} 
    ${value_to_convert}= Catenate ${value_to_convert} Foobar 
    [Return] ${value_to_convert} 

A User Keyword 
    [Arguments] ${arg1} ${arg2} 
    Log ${arg1} 
    Log ${arg2} 

質問:(非作業)Desired Notationに取り組んテストケースFor Example onlyを簡素化する可能性がある - か - 私は何とか使用することができます前に明示的な代入を行うことなく、パラメータとして渡されるキーワードの戻り値?明確にするため

  • Some Conversionははるかに複雑かつ jrobotremotelibrary
  • 内に実装されてA User Keywordにassingmentsを移動することになる 異なる量で多くのキーワードが存在しますので、 有用なソリューションではありません同じ機能を使用するパラメータの数を変更することができます。

答えて

3

はい、可能です。あなたは正確にあなたの例のように、このキーワードを使用することになり

*** Keywords *** 
A User Keyword 
    [Arguments] ${keyword1} ${var1} ${keyword2} ${var2} 
    ${var1}= Run keyword ${keyword1} ${var1} 
    ${var2}= Run keyword ${keyword2} ${var2} 
    log ${var1} 
    log ${var2} 

A User Keyword Some Conversion ${VAR_1} Some Conversion ${VAR_2} 
それは次のようになります

あなたは、引数として渡されている他のキーワードを呼び出す独自のキーワードを書くことができます

1

キーワードの引数値の代入は、別のキーワードの戻り値にすることはできません。

@Bryan Oaklyで強調表示されているように、Run keywordを賢明に使用して外観を模倣することは可能ですが、強調表示されているように、割り当てが常に同じ数の引数を持つキーワードやキーワードを使用するとは限りません。

したがって、変数に値を代入してから変数をキーワード引数に割り当てるのが最善の方法です。

+0

受け入れる答えは非常に難しいです。私の場合、あなたのものは正しいものになります(私の意図した方法では不可能です)。しかし、@Bryan Oaklyの回避策は、より多くの人々が同じ問題を抱えているのに役立ちます。明確化のためにありがとう。 –

関連する問題