-2

好的,所以我正在用 JUnit 测试用例做一些练习,我试图从 Java 中的不同类调用一个方法,但我无法弄清楚。这些类位于不同的源文件夹中,所以不确定这是否是一个原因?

下面是一小段代码,带有构造函数和我如何尝试调用该方法的示例。

package common;

public class MathTest {

    @Test
    public void test1(){

            if (mMultiply(5, 6)== 30){
                System.out.println("mMultiply Test has passesd");
            } else {
                System.out.println("mMultiply Test has failed");
                fail("Multiply failed for inputted parameters. ");

现在这是另一个类,我试图调用包通用的方法;

public class math {

    public static int mMultiply(int x, int y){
    return x*y;

}
4

5 回答 5

5

由于它是一个静态方法,只需在您的 JUnit 文件测试中导入该类即可。然后使用Assert classJUnit 来测试你的功能。在这种情况下,使用assertEquals. 所以我会将测试重写为:

@Test
public void test1(){
    assertEquals(math.mMultiply(5, 6),30);
}
于 2013-06-10T14:33:49.900 回答
2

您需要告诉您的方法静态方法在哪个类中,即:

if (math.mMultiply(5, 6)== 30){
        System.out.println("mMultiply Test has passesd");
    }

顺便说一句,所有 Java 类都应该以大写字母开头,并且已经有一个名为 Math 的核心 Java 类,因此您可能想要找到另一个名称。

于 2013-06-10T14:33:49.757 回答
1

trymath.mMultiply它是一个静态方法,因此您必须指定它所在的类

于 2013-06-10T14:34:42.750 回答
1

当您调用 时mMultiply(5,6),请这样做:math.mMultiply(5,6)

于 2013-06-10T14:34:53.423 回答
1

因为它是一个静态方法,你可以在它之前加上它的类名来调用它:

math.mMultiply(value1, value2).

另外,请查看 java 代码编写手册。类名以大写字母开头,所以我会将类的math类更改为Math.

于 2013-06-10T14:35:21.160 回答