junit完整生命周期时序图
在图中第2步调用TestSuite构造方法时,代码如下:
public TestSuite(final Class theClass) {
fName= theClass.getName();
try {
getTestConstructor(theClass); // Avoid generating multiple error messages
} catch (NoSuchMethodException e) {
addTest(warning("Class "+theClass.getName()+" has no public constructor TestCase(String name) or TestCase()"));
return;
}
if (!Modifier.isPublic(theClass.getModifiers())) {
addTest(warning("Class "+theClass.getName()+" is not public"));
return;
}
Class superClass= theClass;
Vector names= new Vector();
while (Test.class.isAssignableFrom(superClass)) {
Method[] methods= superClass.getDeclaredMethods();
for (int i= 0; i < methods.length; i++) {
addTestMethod(methods[i], names, theClass);
}
superClass= superClass.getSuperclass();
}
if (fTests.size() == 0)
addTest(warning("No tests found in "+theClass.getName()));
}
addTestMethod()方法代码如下:
private void addTestMethod(Method m, Vector names, Class theClass) {
String name= m.getName();
if (names.contains(name))
return;
if (! isPublicTestMethod(m)) {
if (isTestMethod(m))
addTest(warning("Test method isn't public: "+m.getName()));
return;
}
names.addElement(name);
addTest(createTest(theClass, name));
}
isTestMethod()方法代码如下:
private boolean isTestMethod(Method m) {
String name= m.getName();
Class[] parameters= m.getParameterTypes();
Class returnType= m.getReturnType();
return parameters.length == 0 && name.startsWith("test") && returnType.equals(Void.TYPE);
}
最后一行代码给出了对test方法声明所做的限制。
- 大小: 8.6 KB
分享到:
相关推荐
例如,`public void testXXX()` 方法名约定被视为测试方法,`setUp()` 和 `tearDown()` 方法用于在每个测试前后的准备和清理工作。 2. **断言**:JUnit 提供了一系列的断言方法,如 `assertEquals()`、`assertTrue...
2. **注解(Annotations)**:在Junit 3.8中,注解尚未被引入,所以测试类和方法通常使用`public static void testXXX()`的约定。例如,`public static void testAddition()`表示一个加法测试。 3. **断言(Assertions...
在3.8.1版本中,注解方式尚未引入,而是使用`public void testXXX()`格式的方法名来识别测试用例。 2. **断言(Assertions)**:JUnit提供了一系列的断言方法,如`assertEquals()`用于比较预期结果和实际结果,`...
- **testXxx()**:测试方法,以`test`为前缀,JUnit会自动识别并执行这些方法。 #### 六、JUnit面板 在Eclipse中,可以使用JUnit面板来查看测试结果。如果当前没有显示JUnit面板,可以通过`Window` -> `Show View` ...
JUnit 为开发者提供了便利的API,使得编写具有明确测试结果的可重用单元测试用例变得容易。它还支持批量运行测试用例,有助于代码的打包发布和测试代码的管理。此外,JUnit的一个显著优点是其灵活性,一个针对特定类...
- **注解**:JUnit 4使用注解来标识测试方法,例如`@Test`、`@Before`、`@After`等,取代了JUnit 3中必须以特定名字(如`testXXX`)命名的方法。 - **参数化测试**:允许同一个测试方法使用多组不同的输入数据进行多...
- **测试方法**:每个测试方法通常命名为`testXXX()`的形式。 - **测试套件**:将多个测试方法组合在一起,形成一个整体的测试流程。 #### 六、JUnit 的安装与配置 - **安装**:可以通过Maven或Gradle等构建工具...
定义测试案例 (`TestCase`),通常以 `testXXX` 的形式命名方法。 2. 组合测试案例成测试套件 (`TestSuite`)。 3. 使用测试运行器 (`TestRunner`) 执行测试套件。 4. 收集并分析测试结果 (`TestResult`)。 #### ...
2. `junit.framework.TestCase`:测试用例类,是编写具体测试的基础,你的业务类测试通常会继承这个类,然后自定义若干个以`testXxx()`命名的方法,每个方法内部通过assert方法设定测试条件。 3. `junit.framework....
- B是Junit中测试方法的定义,public void testXXX()。 - B的条件组合覆盖是测试覆盖最强的标准。 - C的语句覆盖是测试覆盖最弱的标准。 以上是对软件测试中涉及的基本概念和方法的详细阐述,涵盖了测试的多个...
8. **JUnit测试用例**:在JUnit中,公共方法`public void testXXX()`定义了一个测试用例,因此选项B正确。 9. **单元测试**:单元测试是软件测试的基础环节,它针对软件的最小可测试单元进行,如函数或方法。选项A...
14. 在 Junit 中,测试用例的方法必须是公共的(public)并且返回类型为 void(B)。因此,正确形式是 `public void testXXX()`。 15. 软件测试不需要了解软件的内部构造(B)。测试人员通常关注功能(A)、处理...
16. 在 Junit 中,testXXX()方法必须满足三个条件:public、void 和无方法参数。 17. 代码复审是一种静态测试,它不实际运行程序。 18. 集成测试可以分为一次性集成测试和增量式集成测试两种方式。 19. 软件开发...
7. **Junit测试框架**:在Junit中,测试方法需要是public void无参数的方法,以`testXXX()`的形式命名。 8. **软件质量保证**:软件测试是保证软件质量的重要手段,其中单元测试是最基础的环节,它专注于模块内部的...