我写了一个简单的测试代码。这是一个圆圈。我想大多数人都可以想象什么是圆圈类,所以我不会粘贴它。
在测试代码中,我尝试使用无效点测试圆形构造函数,并假设抛出异常。但是发生了一个错误。我在线检查,但仍然不知道如何解决问题。有没有人可以帮助我?感谢
代码信息,bug在下面代码的最后一句
/**
* Tests that the Circle constructor throws an exception for center Point.
*/
@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
//Instantiates a circle with an incorrect center point.
@SuppressWarnings("unused")
final Circle testCircle = new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}
错误报告
Bug:在CircleTest.testIllegalCenter()
中将test存储到testCircle该指令为局部变量赋值,但不会在任何后续指令中读取或使用该值。通常,这表示错误,因为从未使用计算的值。
请注意,Sun的javac编译器通常会为最终的局部变量生成死存储。因为FindBugs是一个基于字节码的工具,所以没有简单的方法来消除这些误报。
答案 0 :(得分:4)
只需删除变量并按如下方式调用构造函数:
@Test (expected = IllegalArgumentException.class)
public void testIllegalCenter() {
new Circle(VALID_RADIUS, INVALID_POINT, VALID_COLOR);
}