0

データ ドリブン モードの単純な電卓アプリケーションでコード化された UI テストを行っています。アサーションを追加した後、「。」が原因だと思われるテスト結果が渡されません。(Windows 電卓アプリケーションに既に存在する小数点)。

したがって、小数や整数を含むすべてのタイプの値が受け入れられるようにコードを記述する方法を知りたいだけです。データテーブルに使用される私のCSVファイルは

input1     input2      expected_add
1.2         2.3        3.5
2.4         2.5        4.9
5.6         1.4         7    

ここでは、1 行目と 2 行目は成功していますが、3 行目は失敗しています。

以下は、データ ドリブン テストに使用したサンプル コードです。

this.UIMap.add_2_dec_numParams.UICalculatorDialogSendKeys = TestContext.DataRow["input1"].ToString();
this.UIMap.add_2_dec_numParams.UIItemEditSendKeys = "{add}" + TestContext.DataRow["input2"].ToString() + "=";
this.UIMap.add_2_dec_num();
this.UIMap.add_asertExpectedValues.UIItemEditText = TestContext.DataRow["expected_add"].ToString()+" ";
this.UIMap.add_asert();

最初の 2 行は小数があるため、渡されます。3行目の予想される結果では、値を作成する必要があります7。そうし7.ないと、電卓に受け入れられません。それが問題だ..

コードを次のように変更すると:

this.UIMap.add_asertExpectedValues.UIItemEditText = TestContext.DataRow["expected_add"].ToString()+"."+" ";

次に、3 行目が成功し、最初の 2 行が失敗します。エラーが表示されexpected <3.5 > actual<3.5. >expected <4.9 > actual<4.9. >それが問題です。

4

1 に答える 1

0

私の推測では、使用されているアサーションは、整数または double に変換してから比較するのではなく、文字列を比較していると思います。"7" と "7" の文字列比較。失敗するのは当然です。

アサーションを UIMap の外に移動します。次に、Assert.AreEqual を実行する前に、テキスト ボックスとデータ行のテキスト値を double に変換します。double が浮動小数点数であることによる誤検知を回避したい場合は、デルタを持つバージョンを使用してください...

于 2012-05-18T12:15:31.453 に答える