0

这是我要测试的课程:

package math;
import java.lang.Math;
public class Power {

public double powerFinder (double x, double y) 
    {

        return Math.pow(5, 4);

    }

}

这是测试:

@Test

public double testPower() {

    Power power = new Power();
    assertEquals("Result", 625, power.powerFinder(5, 4), epsilon);
}

}

目前我得到'Power类型中的方法powerFinder(double)不适用于参数(int,int)。请问我该如何解决这个问题,以便测试运行?

4

3 回答 3

2

您声明powerFinder (double x),因此您需要传递一个 double参数,而不是两个 ints。

采用:

power.powerFinder(5)

或将方法更改为: powerFinder (double x, double y)

您也可以更改doublevoidpublic double testPower() {

您的测试函数不返回任何值,因此您需要将其声明为void返回类型。

我认为你应该读这个

于 2013-03-06T09:31:47.517 回答
0

将您的代码更改为:

public double powerFinder (double x, double y); 
{

    return Math.pow(x, y);

}
于 2013-03-06T09:34:16.550 回答
0

问题是类型double不是指单片a pair of values,而是一个双精度浮点数。此外,您的方法甚至不使用该单个参数。

所以这:

public double powerFinder (double x) 
{
    return Math.pow(5, 4);
}

应改写为:

public double powerFinder (double x, double y) 
{
    return Math.pow(x, y); // note x and y: those are the arguments of your function
}

但这本身没有意义,您可以Math.pow(x, y)改用。当然,那么你的测试也没有任何意义......

(类似的构造可能是有意义的,在处理 API 时隐藏实现细节,并提供抽象 - 但在这种情况下,这似乎不适用......)

于 2013-03-06T09:36:30.527 回答