我有一个小型应用程序,可以将温度从 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>
。我认为价值四舍五入存在一些问题。请告诉我究竟是什么问题。
答案 0 :(得分:1)
你有String temp = expected +&#34;&#34 ;;但预计是对象(Float)类型 - Float预期。 因此,尝试expected.toString()或更改Float预期浮动预期。 并尝试调试。
答案 1 :(得分:0)
预期的值可能是102.0000001,它不会与独奏中的文本匹配,应该是102(如果我正确理解代码)。
您应该遵循标准浮点数比较技术,而不是比较字符串。
所以你要使用类似的东西:
assertEquals("The converted temperature didn't match.", temparature, expected, 0.001);
总的来说,目前尚不清楚您的测试用例正在尝试完全验证。你的帖子的标题并没有表明这个问题。