使用Java调用不同类中的方法时遇到问题

时间:2013-06-10 14:30:35

标签: java eclipse class methods junit

好的,所以我正在使用JUnit测试用例进行一些练习,我正在尝试从Java中的另一个类调用一个方法,但我无法弄明白。这些课程在不同的SOURCE FOLDERS中,因此不确定这是否是一个原因?

下面是一小段代码,包含构造函数以及我如何调用该方法的示例。

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;

}

5 个答案:

答案 0 :(得分:5)

因为它是一个静态方法,所以只需在JUnit文件测试中导入该类。然后使用JUnit的Assert class来测试你的函数。在这种情况下,请使用assertEquals。 所以我会把测试重写为:

@Test
public void test1(){
    assertEquals(math.mMultiply(5, 6),30);
}

答案 1 :(得分:2)

你需要告诉你的方法静态方法属于哪个类,即:

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

当您致电mMultiply(5,6)时,请执行以下操作:math.mMultiply(5,6)

答案 4 :(得分:1)

由于它是静态方法,因此您可以在其之前使用其类名称调用它:

math.mMultiply(value1, value2).

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