2017-06-28 18 views
0

user guideによれば、変数に値を割り当てて単純な算術演算を実行することができます。Variable assignementとFitnesseを使用した簡単な算術

私は、固定具は、ページ上の要素を取るためにdesighed、これが与える実行ダブル(私は今HSACスリムBrowserTestフィクスチャと私自身のコードを使用してこれを行う)

|script  |numbers extraction | 
|$testval1= |numeric value of|element1    | | 
|$testval2= |numeric value of|element2    | | 

として数値を抽出してい想像私のような何か:

|script  |numbers extraction | 
|$testval1<-[20.04] |numeric value of|element1 ->[€ 20,04] | | 
|$testval2<-[5.1]  |numeric value of|element2 ->[€ 5,1] | | 

は、今私は第三要素の数値と2倍の合計を比較したいと言う:

|script  |numbers extraction | 
|check |numeric value of| element3 | {=${ ${testval1} + ${testval2} =} | 

最後のセルで使用しているカッコとドル記号の組み合わせが何であっても、私は常に「無効な式」を取得します。

  • $ {= $ testval1 + $ testval2 =}無効式:$ testval1 + $ testval2
  • {$ {= $ testval1 + $ testval2 =}} {無効な式:$ testval1 + $ testval2}
  • $ {= $ {testval1} + $ {testval2} =} [無効式:未定義の変数:testval1 +未定義の変数:testval2]!
  • $ {= - $のtestval1-! +! - $ testval2-! =}無効な表現:$ testval1 + $ testval2
  • $ {=! - $ {testval1} - ! +! - $ {testval2} - ! =}無効な式:$ {testval1} + $ {testval2}(testval1とtestval2周りの括弧なし)最後の行を実行

返します

|check |numeric value of| element3 ->[€ 25.14]| [25.14] expected [invalid expression: $testval1->[20.04] + $testval2->[5.1]] | 

答えて

1

残念ながら、あなたが探していることはできません。要素の値を割り当てる変数は、実際にはSLIM symbolsであり、wikiレベルの変数ではありません。あなたが質問ににリンクされているユーザーガイドページにビットスクロールダウンした場合には、「変数とSLIMシンボル間の違い」というセクションがあります:

  • 変数は、テストの前に、レンダリング時に評価されます実行します。これにより、ページ階層やテストに完全に入力されたものに基づいて値を設定することができます。
  • シンボルは実行時にのみ存在します。実行時に変更することができるため、変更できない変数とは異なります。

は、私は人々に混乱しているFitNesseの/ SLIMの変数の3種類を見つけて、それらの異なる使用法、構文と可能性が多くの問題を引き起こします。私の理解は:

  1. Markup variables(別名wiki変数)です。例えば、${myVar}は、!defineを使用して定義されます。彼らはページのレンダリング時にその価値を得るので、テストが開始される前であっても、Wikiページを参照するときにその値が表示され、ページのソースのみが変数であることがわかります。これらは、markup expressionsで使用することができます。これは、あなたが質問でしようとしていることです。
  2. Scenarioのパラメータ。例えば、@{myVar}(または@myVar)は、SLIMシナリオテーブルの最初の行に定義されています。これらは、シナリオの呼び出し(すなわち、スクリプトテーブル、他のシナリオまたは決定テーブル内の行のいずれかから、シナリオの各使用法がそれらの値を定義する)に基づいて実際の値を得る、シナリオに対する「仮パラメータ」である。最初のアクションが実行される前に、テストの開始時に値を取得します。変数を定義するシナリオテーブルを見ると、変数が表示されます。 (hsac-fitnesse-fixturesプロジェクトベースラインに含まれているhsac-fitnesse-pluginで定義されている 'table template'テーブルタイプを使用する場合、テーブルの最初の行に変数名を定義する必要はありません。 @{myVar})。
  3. SLIM symbolsです。たとえば$myVarの場合は、$myVar=を使用して値が割り当てられます。これらは、テスト実行中に値を取得する「実行時変数」であり、テストスイート全体に対してグローバルであり、テスト実行中にその値が変更される可能性があります。これらは、「テスト対象システム」から取得したプロパティから値を取得できる唯一の変数であり、質問の表で使用している変数です。 これらは実際にはSLIMプロセス内のオブジェクトへの参照であるため、フィクスチャは変数が参照するオブジェクトの内部状態を変更する可能性があります(この変更は変数のwiki表現には表示されません最後の割り当て)。

P.文字列をダブルに変換するには、hsac-fitnesse-fixturesを使用するときにカスタムフィクスチャ(numbers extractionなど)を必要としません。あなたはライブラリのstring fixtureconvert to doubleメソッドを使うことができます。

+0

おかげさまで、何が起こっているのか分かりましたので、Fitnesseメーリングリストの古いスレッドが、式で使用できない理由を説明しています(http://fitnesse.996250.n3.n3.nabble.com/use-of-symbols- in-expressions-td11809.html)を参照してください。 – Ivana

+0

カスタムフィクスチャは、入力に必要なdouble(ローカライズされた10進数のセパレータ付き)以上の入力が含まれているため、必要です。 – Ivana

+0

ああ、入力のいくつかの有効なフォーマットが存在し、扱うのが面倒です。正規表現だけです。それにかかわらず、Stringフィクスチャの正規表現機能はクールです! – Ivana

0

あなたはブラウザテストを使用しているように見えます、これは私がそれを取るHSACのインストールですか? HSACはFitNesseのフィクスチャであるため、この点に言及してください。

とにかく、中かっこを取り除くことはすべきことです。中括弧を使用すると、グローバル変数が使用されます。!define var {foo}

中括弧なしの変数を使用してテストで呼び出す必要がある場合は、|$bar=|value of|foo|のようにローカルで定義された変数を使用する必要があります。

|$bar=|value of|foo| 
|enter|$bar|as|inputField| 

ここHSACの使用状況に関するより多くのものを探す:https://github.com/fhoeben/hsac-fitnesse-fixtures/wiki/2.-Slim-Fixtures

追記: が続い@varまたは@{var}を使用し、テーブルのテンプレートもありますが、@{var}が列varを探しますので、@{var}を用いることが好ましいです@varは、それを実装した場合、vまたはvaという列を受け入れます。ここで中括弧を使用すると、完全な変数名が使用されます。

+0

ありがとうございます。私はHSACの備品の使用を明確にしました。 1つのレベルのカッコを削除すると、 '未定義変数'エラーは解決されますが、有効な式はまだ得られません。 – Ivana

関連する問題