2012-05-02 12 views
0

ました。私は2つのラジオボタンを使って温度、すなわち摂氏または華氏を選択し、一つのボタンと一つのEditTextを選択します。アプリケーションをテストするためにJunitを作成しました。ここで
は私のテストコードです:私は上記のテストを実行するとは<true>期待が、私は<em>華氏</em>およびその逆に<em>摂氏</em>から温度に変換する小さなアプリケーションを持っている<false>

float temparature=102; 
Float expected=(float) 0; 
solo.enterText(0,String.valueOf(temparature)); 
solo.clickOnButton("calculate"); 

     if(solo.isRadioButtonChecked(0)){ 
      expected=((temparature-32)*5/9); 
      } 
     else if(solo.isRadioButtonChecked(1)){ 
      expected=((temparature*9)/5)+32; 
       } 

     String temp=expected+""; 

     assertEquals(true,solo.searchEditText(temp)); 

} 

、テストの実行は成功したが言って失敗しました:expected<true>but was <false>。価値の丸めには問題があると思います。正確に何が問題なのか教えてください。

+0

また、「テストが成功しましたが失敗しました」とはどういう意味ですか?どのように成功し、失敗することができますか? –

答えて

0

期待値はおそらく102.0000001のようなもので、これはソロのテキストと一致しません。これは102でなければなりません(コードが正しく分かっていれば)。

文字列を比較するのではなく、標準の浮動小数点比較手法に従ってください。 、あなたのテストケースを正確に検証しようとしているものをクリアしていない

assertEquals("The converted temperature didn't match.", temparature, expected, 0.001); 

全体:

http://junit.sourceforge.net/javadoc/org/junit/Assert.html#assertEquals%28java.lang.String,%20double,%20double,%20double%29

だからあなたのようなものを使用すると思います。あなたの投稿のタイトルはその質問について何も示していません。

1

あなたは文字列temp = expected + ""を持っています。期待されているのはオブジェクト(浮動小数点数)型です。 expected.toString()を試してみるか、浮動小数点が予想されるFloatを期待どおりに変更してください。 デバッグしてみてください。

関連する問題