我有两个类Calculator1
和Calculator2
,它们位于src文件夹下名为com.zzy.junit.user
的包中。我使用myeclipse创建两个测试类来分别测试它们。当我在其中执行一个测试类时,Junit4如何知道测试了哪个类?
package com.zzy.junit.user;
public class Calculator1 {
private int a;
private int b;
public Calculator1(int a,int b)
{
this.a = a;
this.b = b;
}
public int add()
{
return a+b;
}
}
package com.zzy.junit.user;
public class Calculator2{
public int divide(int a,int b)
{
return a/b;
}
}
两个测试类如下: 它们都位于名为test
的src文件夹中package com.zzy.junit.user;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import org.junit.Test;
public class TestCalculator1 {
@Test
public void testAdd() {
Calculator1 s = new Calculator1(3,6);
int z = s.add();
assertThat(z,is(9));
}
}
package com.zzy.junit.user;
import static org.junit.Assert.*;
import static org.hamcrest.Matchers.*;
import org.junit.Test;
public class TestCalculator2 {
@Test
public void testDivide() {
TestCalculator2 t = new TestCalculator2();
int z = t.divide(4, 2);
assertThat(z,is(2));
}
}
我想知道我是否执行了名为TestCalculator2
的测试类,Junit4如何知道我想测试Calculator1
类。它与测试类的名称有关吗?
答案 0 :(得分:3)
JUnit是一个用于执行可以通过或失败的测试的框架。单个测试通常关注单个类的事实是大多数Java程序员观察到的惯例。 JUnit4不知道正在测试哪些类,它只执行用@Test
注释的所有方法。
答案 1 :(得分:0)
通常因为它的名字以“Test”结尾,或者因为它有@Test注释。
答案 2 :(得分:0)
根据您之前发布的测试代码,testAdd
中的TestCaculator1
方法正在测试add
中的Student
方法和testDivide
方法TestCaculator1
正在divide
中测试Teacher
方法。
通过上次编辑,测试类名称现在更接近于测试类的名称。
正如另一个答案所指出的那样,没有真正要求测试类专门用于测试特定的类,尽管人们倾向于按惯例建立一对一的关系。
真正的连接是在方法级别,完全取决于测试方法实际运用的类。