期望<true>,但是<false> </false> </true>

时间:2012-05-02 12:07:54

标签: android junit

我有一个小型应用程序,可以将温度从 Celsius 转换为 Fahrenheit ,反之亦然。我有两个RadioButtons来选择温度,即Celsius或Fahrenheit,一个Button和一个EditText。我创建了一个Junit来测试应用程序 这是我的测试代码:

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>。我认为价值四舍五入存在一些问题。请告诉我究竟是什么问题。

2 个答案:

答案 0 :(得分:1)

你有String temp = expected +&#34;&#34 ;;但预计是对象(Float)类型 - Float预期。 因此,尝试expected.toString()或更改Float预期浮动预期。 并尝试调试。

答案 1 :(得分:0)

预期的值可能是102.0000001,它不会与独奏中的文本匹配,应该是102(如果我正确理解代码)。

您应该遵循标准浮点数比较技术,而不是比较字符串。

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

所以你要使用类似的东西:

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

总的来说,目前尚不清楚您的测试用例正在尝试完全验证。你的帖子的标题并没有表明这个问题。