Android 预期<;正确>;,但这是<;假>;
我有一个小应用程序,可以将温度从摄氏度转换为华氏度,反之亦然。我有两个单选按钮来选择温度,即摄氏度或华氏度,还有一个按钮和一个编辑文本。我创建了一个Junit来测试应用程序。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
以下是我的测试代码:
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);
总的来说,还不清楚您的测试用例到底要验证什么。你文章的标题并没有说明这个问题。另外,“测试运行成功但失败”是什么意思?它怎么可能既成功又失败?