java - JUnit 测试 getter 方法不起作用

标签 java eclipse junit

我正在 Eclipse 中进行 Java 练习,以将 JUnit 测试添加到现有项目中。这不是为了作业或其他任何事情,只是一种习惯 Eclipse 的方法(我之前一直在使用 BlueJ)。 但是,我写的两个测试方法似乎不起作用。由于某些原因,我创建的 Circle 对象(具有半径字段,我将其设置为 6、8 和 2 到三个不同的圆)保持默认半径为 0,因此我的两种测试方法(一种实际上是报告工作,但这是因为它正在检查圆周 >= 0)失败。我做错了什么?我不是一位经验丰富的程序员,因此这个错误对于你们大多数人来说可能是显而易见的。

import static org.junit.Assert.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;


public class CircleTest {
    Circle circle1;
    Circle circle2;
    Circle circle3;
@Before
public void setUp() throws Exception {

    circle1 = new Circle(6.00);
    circle2 = new Circle(8.00);
    circle3 = new Circle(2.00);
}




@Test
public void testCircumference() {
    assertTrue(circle1.circumference() >= 0);
    assertTrue(circle2.circumference() >= 0);
    assertTrue(circle3.circumference() >= 0);

}

@Test
public void testGetter() {
    assertEquals(6, circle1.getRadius(), 1e-15);
    assertEquals(8, circle2.getRadius(), 1e-15);
    assertEquals(2, circle3.getRadius(), 1e-15);

}

@After
public void tearDown() throws Exception {
}

}

最佳答案

getRadius 返回的值很可能是 double 基元类型的默认值 0.0

确保在Circle的构造函数中分配了半径

public Circle(double radius) {
    this.radius = radius;
}

以便可以通过getRadius返回该值

public double getRadius() {
   return radius;
}

关于java - JUnit 测试 getter 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19384736/

相关文章:

mysql - #include 'mysql/mysql.h' 文件未找到 - Eclipse/Mac OSX

java - 如何使用嵌套的for循环测试方法

java - 如何使用 JUnit Mockito 验证检查方法是否未被调用

java - 使用eclipse API读取eclipse安装路径

java - 如何在禁用按钮的情况下启动程序 - Java?

Java - 在 jTextArea 中输入时,将焦点设置到相应的 jButton

javascript - 使用 Eclipse 和 Chromium Dev Tools V8 进行 Node.JS 调试

java - 让两个物体在 SwingBot 中移动

java - 删除 NatTable 中的列

java - 如何修复 "The import org.junit.jupiter"?