You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JUnit4测试问题:构造函数未正确初始化属性致测试失败

问题:Sterling类构造函数初始化与addToValue方法逻辑错误

问题现象

  • Sterling类构造函数接收initialValue参数,但未正确初始化成员变量value
  • 调用addToValue方法时,仅返回valueChange参数的值,而非初始值与变更值的和
  • JUnit4测试预期结果为150,实际仅得到50

原代码示例

Sterling类代码

public class Sterling {
    private int value;

    public Sterling(int initialValue) {
        // 错误:未将initialValue赋值给value
    }

    public int addToValue(int valueChange) {
        // 错误:仅返回valueChange,未计算总和
        return valueChange;
    }
}

JUnit4测试代码

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class SterlingTest {
    @Test
    public void testAddToValue() {
        Sterling sterling = new Sterling(100);
        int result = sterling.addToValue(50);
        assertEquals(150, result); // 预期150,实际得到50
    }
}

修复方案

  1. 修复构造函数:在构造函数中将传入的initialValue赋值给成员变量value
  2. 修复addToValue方法:计算value与valueChange的和,返回结果的同时更新成员变量value(若需保留对象状态)

修复后的代码

修复后的Sterling类

public class Sterling {
    private int value;

    public Sterling(int initialValue) {
        this.value = initialValue;
    }

    public int addToValue(int valueChange) {
        this.value += valueChange;
        return this.value;
    }
}

验证测试

重新运行JUnit4测试,testAddToValue方法会得到预期的150,测试通过。

内容的提问来源于stack exchange,提问作者rulerH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 11:25:32