Package org.junit.runner
Class Description
- java.lang.Object
-
- org.junit.runner.Description
-
- All Implemented Interfaces:
java.io.Serializable
public class Description extends java.lang.Object implements java.io.Serializable
ADescription
describes a test which is to be run or has been run.Descriptions
can be atomic (a single test) or compound (containing children tests).Descriptions
are used to provide feedback about the tests that are about to run (for example, the tree view visible in many IDEs) or tests that have been run (for example, the failures view).Descriptions
are implemented as a single class rather than a Composite because they are entirely informational. They contain no logic aside from counting their tests.In the past, we used the raw
TestCase
s andTestSuite
s to display the tree of tests. This was no longer viable in JUnit 4 because atomic tests no longer have a superclass belowObject
. We needed a way to pass a class and name together. Description emerged from this.- Since:
- 4.0
- See Also:
Request
,Runner
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static Description
EMPTY
Describes a Runner which runs no testsstatic Description
TEST_MECHANISM
Describes a step in the test-running mechanism that goes so wrong no other description can be used (for example, an exception thrown from a Runner's constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addChild(Description description)
AddDescription
as a child of the receiver.Description
childlessCopy()
static Description
createSuiteDescription(java.lang.Class<?> testClass)
Create aDescription
named aftertestClass
static Description
createSuiteDescription(java.lang.Class<?> testClass, java.lang.annotation.Annotation... annotations)
Create aDescription
named aftertestClass
static Description
createSuiteDescription(java.lang.String name, java.io.Serializable uniqueId, java.lang.annotation.Annotation... annotations)
Create aDescription
namedname
.static Description
createSuiteDescription(java.lang.String name, java.lang.annotation.Annotation... annotations)
Create aDescription
namedname
.static Description
createTestDescription(java.lang.Class<?> clazz, java.lang.String name)
Create aDescription
of a single test namedname
in the classclazz
.static Description
createTestDescription(java.lang.Class<?> clazz, java.lang.String name, java.lang.annotation.Annotation... annotations)
Create aDescription
of a single test namedname
in the classclazz
.static Description
createTestDescription(java.lang.String className, java.lang.String name, java.io.Serializable uniqueId)
Create aDescription
of a single test namedname
in the classclazz
.static Description
createTestDescription(java.lang.String className, java.lang.String name, java.lang.annotation.Annotation... annotations)
Create aDescription
of a single test namedname
in the 'class' namedclassName
.boolean
equals(java.lang.Object obj)
<T extends java.lang.annotation.Annotation>
TgetAnnotation(java.lang.Class<T> annotationType)
java.util.Collection<java.lang.annotation.Annotation>
getAnnotations()
java.util.ArrayList<Description>
getChildren()
Gets the copy of the children of thisDescription
.java.lang.String
getClassName()
java.lang.String
getDisplayName()
java.lang.String
getMethodName()
java.lang.Class<?>
getTestClass()
int
hashCode()
boolean
isEmpty()
boolean
isSuite()
boolean
isTest()
int
testCount()
java.lang.String
toString()
-
-
-
Field Detail
-
EMPTY
public static final Description EMPTY
Describes a Runner which runs no tests
-
TEST_MECHANISM
public static final Description TEST_MECHANISM
Describes a step in the test-running mechanism that goes so wrong no other description can be used (for example, an exception thrown from a Runner's constructor
-
-
Method Detail
-
createSuiteDescription
public static Description createSuiteDescription(java.lang.String name, java.lang.annotation.Annotation... annotations)
Create aDescription
namedname
. Generally, you will add children to thisDescription
.- Parameters:
name
- the name of theDescription
annotations
- meta-data about the test, for downstream interpreters- Returns:
- a
Description
namedname
-
createSuiteDescription
public static Description createSuiteDescription(java.lang.String name, java.io.Serializable uniqueId, java.lang.annotation.Annotation... annotations)
Create aDescription
namedname
. Generally, you will add children to thisDescription
.- Parameters:
name
- the name of theDescription
uniqueId
- an arbitrary object used to define uniqueness (inequals(Object)
annotations
- meta-data about the test, for downstream interpreters- Returns:
- a
Description
namedname
-
createTestDescription
public static Description createTestDescription(java.lang.String className, java.lang.String name, java.lang.annotation.Annotation... annotations)
Create aDescription
of a single test namedname
in the 'class' namedclassName
. Generally, this will be a leafDescription
. This method is a better choice thancreateTestDescription(Class, String, Annotation...)
for test runners whose test cases are not defined in an actual JavaClass
.- Parameters:
className
- the class name of the testname
- the name of the test (a method name for test annotated withTest
)annotations
- meta-data about the test, for downstream interpreters- Returns:
- a
Description
namedname
-
createTestDescription
public static Description createTestDescription(java.lang.Class<?> clazz, java.lang.String name, java.lang.annotation.Annotation... annotations)
Create aDescription
of a single test namedname
in the classclazz
. Generally, this will be a leafDescription
.- Parameters:
clazz
- the class of the testname
- the name of the test (a method name for test annotated withTest
)annotations
- meta-data about the test, for downstream interpreters- Returns:
- a
Description
namedname
-
createTestDescription
public static Description createTestDescription(java.lang.Class<?> clazz, java.lang.String name)
Create aDescription
of a single test namedname
in the classclazz
. Generally, this will be a leafDescription
. (This remains for binary compatibility with clients of JUnit 4.3)- Parameters:
clazz
- the class of the testname
- the name of the test (a method name for test annotated withTest
)- Returns:
- a
Description
namedname
-
createTestDescription
public static Description createTestDescription(java.lang.String className, java.lang.String name, java.io.Serializable uniqueId)
Create aDescription
of a single test namedname
in the classclazz
. Generally, this will be a leafDescription
.- Parameters:
name
- the name of the test (a method name for test annotated withTest
)- Returns:
- a
Description
namedname
-
createSuiteDescription
public static Description createSuiteDescription(java.lang.Class<?> testClass)
Create aDescription
named aftertestClass
- Parameters:
testClass
- AClass
containing tests- Returns:
- a
Description
oftestClass
-
createSuiteDescription
public static Description createSuiteDescription(java.lang.Class<?> testClass, java.lang.annotation.Annotation... annotations)
Create aDescription
named aftertestClass
- Parameters:
testClass
- A not nullClass
containing testsannotations
- meta-data about the test, for downstream interpreters- Returns:
- a
Description
oftestClass
-
getDisplayName
public java.lang.String getDisplayName()
- Returns:
- a user-understandable label
-
addChild
public void addChild(Description description)
AddDescription
as a child of the receiver.- Parameters:
description
- the soon-to-be child.
-
getChildren
public java.util.ArrayList<Description> getChildren()
Gets the copy of the children of thisDescription
. Returns an empty list if there are no children.
-
isSuite
public boolean isSuite()
- Returns:
true
if the receiver is a suite
-
isTest
public boolean isTest()
- Returns:
true
if the receiver is an atomic test
-
testCount
public int testCount()
- Returns:
- the total number of atomic tests in the receiver
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
isEmpty
public boolean isEmpty()
- Returns:
- true if this is a description of a Runner that runs no tests
-
childlessCopy
public Description childlessCopy()
- Returns:
- a copy of this description, with no children (on the assumption that some of the children will be added back)
-
getAnnotation
public <T extends java.lang.annotation.Annotation> T getAnnotation(java.lang.Class<T> annotationType)
- Returns:
- the annotation of type annotationType that is attached to this description node, or null if none exists
-
getAnnotations
public java.util.Collection<java.lang.annotation.Annotation> getAnnotations()
- Returns:
- all of the annotations attached to this description node
-
getTestClass
public java.lang.Class<?> getTestClass()
- Returns:
- If this describes a method invocation, the class of the test instance.
-
getClassName
public java.lang.String getClassName()
- Returns:
- If this describes a method invocation, the name of the class of the test instance
-
getMethodName
public java.lang.String getMethodName()
- Returns:
- If this describes a method invocation, the name of the method (or null if not)
-
-