Android 预期<;正确>;,但这是<;假>;

Android 预期<;正确>;,但这是<;假>;,android,junit,Android,Junit,我有一个小应用程序,可以将温度从摄氏度转换为华氏度,反之亦然。我有两个单选按钮来选择温度,即摄氏度或华氏度,还有一个按钮和一个编辑文本。我创建了一个Junit来测试应用程序。 以下是我的测试代码: float temparature=102; Float expected=(float) 0; solo.enterText(0,String.valueOf(temparature)); solo.clickOnButton("calculate"); if(solo.isRa

我有一个小应用程序,可以将温度从摄氏度转换为华氏度,反之亦然。我有两个单选按钮来选择温度,即摄氏度或华氏度,还有一个按钮和一个编辑文本。我创建了一个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));  

}

当我运行上述测试时,测试运行成功但失败,原因是:
expectedbut was
。我认为值舍入存在一些问题。请让我知道到底是什么问题。

您有字符串temp=expected+“”;但应为对象(浮点)类型-应为浮点。 因此,请尝试expected.toString()或将Float expected更改为Float expected。
然后尝试调试。

expected的值可能类似于102.0000001,这与solo中的文本不匹配,应该是102(如果我正确理解代码)

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

所以你会使用类似于:

assertEquals("The converted temperature didn't match.", temparature, expected, 0.001);
总的来说,还不清楚您的测试用例到底要验证什么。你文章的标题并没有说明这个问题。

另外,“测试运行成功但失败”是什么意思?它怎么可能既成功又失败?