【问题标题】:Java testing file LocalDateJava 测试文件 LocalDate
【发布时间】:2017-07-13 07:21:14
【问题描述】:

您好,我有一个 Person 类和一个 PersonTest.java 来验证我的方法是否正常工作,我的一个方法确定并验证人员年龄,但是我的测试类中出现错误,指出类 Person 中的方法 getAge 不能适用于给定类型; 必需:本地日期 发现:没有参数

原因:实际参数列表和形式参数列表的长度不同

任何帮助将不胜感激。下面是我的方法和测试方法。提前谢谢你

public int getAge(LocalDate dob)
    {
        LocalDate today = LocalDate.now();

        int age = Period.between(birthdate, today).getYears();
         if (age >= 14 && age <= 115) // valid employee dob
            this.birthdate = dob;
        else
            throw new IllegalArgumentException("the Person must be between 14-               115");    

        return age;
    }

-------------- 这是我的测试方法 ------------------ ----

 public void testGetAge(int age, LocalDate dob) {
        System.out.println("getAge");
        int expResult = 16;
        int result = validPerson.getAge(); // heres the error
        assertEquals(expResult, result);``
    }

【问题讨论】:

  • 您似乎没有使用getAge 中的dob 变量来检查您的验证——birthdate 是什么?

标签: java unit-testing methods int localdate


【解决方案1】:

如我所见,getAge 方法获取LocalDate 输入参数,但在您的测试类中,您在没有任何参数的情况下调用了它。这就是您收到错误的原因:

required: LocalDate found: no arguments

只需传递一个参数给它,或者让它使用Person 年龄。

【讨论】:

  • int result = validPerson.getAge(dob);
  • 测试文件是我们老师给的,不管什么原因测试类如果有参数就失败了,int result = validPerson.getAge(dob);据我所知,除非我将它传递给方法,否则它将无法工作。不过谢谢大家的帮助
猜你喜欢
  • 2019-05-27
  • 2016-02-11
  • 2020-09-23
  • 2019-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-16
  • 2021-01-05
相关资源
最近更新 更多