好的,所以我正在使用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;
}
答案 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
。