【发布时间】:2021-12-23 03:33:13
【问题描述】:
当我要做一些检查时,例如等于预期值 17.41 和计算值(通过 3 个边的三角形区域),计算值显示相同的数字,但带有逗号“,”,这就是测试失败的原因。
org.opentest4j.AssertionFailedError:
预计:17.41
实际:17,41
我该怎么办?抱歉,这是我进行 QA 的第一步,似乎我不知道一些简单的事情))
public class TriangleSquareCalculator {
public TriangleSquareCalculator() {}
public double getTriangleSquare(int a, int b, int c) throws Exception {
if ((a | b | c) <= 0) throw new Exception("Сторона треугольника не может быть меньше, либо равно 0");
else {
double s = ((a + b + c) / 2.0) * ((a + b + c) / 2.0 - a) * ((a + b + c) / 2.0 - b) * ((a + b + c) / 2.0 - c);
return Math.sqrt(s);
}
}
}
@Test
@DisplayName("Проверка выброса исключения при длине стороны треугольника <=0")
void exeptionIsTriangleSidePositive () throws Exception {
TriangleSquareCalculator result = new TriangleSquareCalculator();
Assertions.assertThrows(Exception.class, ()-> result.getTriangleSquare(-3,7,8));
}
@Test
@DisplayName("Проверка проверка правильности рассчета")
void calculationCheck () throws Exception {
TriangleSquareCalculator result2 = new TriangleSquareCalculator();
Assertions.assertEquals(17.41,String.format("%.2f", (result2.getTriangleSquare(7,5,9))));
}
}
【问题讨论】:
-
你可以断言
(result2.getTriangleSquare(7,5,9) -17.41) < 0.01 -
您可以在 String.format 调用中指定 Locale 以控制如何将其转换为字符串,但最好将其声明为双精度值。
-
谢谢,我也会在这个项目中使用这个断言。
标签: java junit junit-jupiter webui