JUnit 4
Unit Size

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 1,330 units with 7,701 lines of code in units (71.8% of code).
    • 0 very long units (0 lines of code)
    • 1 long units (51 lines of code)
    • 26 medium size units (700 lines of code)
    • 149 small units (2,065 lines of code)
    • 1,154 very small units (4,885 lines of code)
0% | <1% | 9% | 26% | 63%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
java0% | <1% | 9% | 26% | 63%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Logical Component
primary logical decomposition
org/junit/internal0% | 2% | 10% | 30% | 56%
org/junit/runners0% | 0% | 9% | 32% | 57%
org/junit/experimental0% | 0% | 8% | 36% | 54%
org/junit/rules0% | 0% | 13% | 19% | 67%
junit/framework0% | 0% | 8% | 11% | 79%
junit/runner0% | 0% | 21% | 39% | 38%
junit/textui0% | 0% | 17% | 26% | 56%
org/junit0% | 0% | 5% | 11% | 82%
org/junit/runner0% | 0% | 2% | 22% | 74%
org/junit/validator0% | 0% | 0% | 34% | 65%
junit/extensions0% | 0% | 0% | 13% | 86%
org/junit/matchers0% | 0% | 0% | 0% | 100%
Legend:
101+
51-100
21-50
11-20
1-10
Alternative Visuals
Longest Units
Top 50 longest units
Unit# linesMcCabe index# params
private void arrayEquals()
in src/main/java/org/junit/internal/ComparisonCriteria.java
51 16 4
public Test getTest()
in src/main/java/junit/runner/BaseTestRunner.java
46 10 1
protected void runWithCompleteAssignment()
in src/main/java/org/junit/experimental/theories/Theories.java
39 4 1
private Object createTestUsingFieldInjection()
in src/main/java/org/junit/runners/parameterized/BlockJUnit4ClassRunnerWithParameters.java
36 5 0
public TestResult start()
in src/main/java/junit/textui/TestRunner.java
33 9 1
public File newFolder()
in src/main/java/org/junit/rules/TemporaryFolder.java
33 9 1
protected void validateFields()
in src/main/java/org/junit/runners/parameterized/BlockJUnit4ClassRunnerWithParameters.java
30 7 1
public void order()
in src/main/java/org/junit/runners/ParentRunner.java
29 5 1
public static T assertThrows()
in src/main/java/org/junit/Assert.java
28 4 3
public static PotentialAssignment forValue()
in src/main/java/org/junit/experimental/theories/PotentialAssignment.java
27 3 2
private void runWithTimeout()
in src/main/java/org/junit/internal/runners/MethodRoadie.java
27 4 1
private void validateTestMethods()
in src/main/java/org/junit/internal/runners/MethodValidator.java
27 8 2
static public Test createTest()
in src/main/java/junit/framework/TestSuite.java
26 7 2
private boolean hasCorrectCategoryAnnotation()
in src/main/java/org/junit/experimental/categories/Categories.java
26 8 1
private static Description makeDescription()
in src/main/java/org/junit/internal/runners/JUnit38ClassRunner.java
25 7 1
public void evaluate()
in src/main/java/org/junit/internal/runners/statements/FailOnTimeout.java
25 4 0
private void addTestsFromTestCase()
in src/main/java/junit/framework/TestSuite.java
24 6 1
public static Ordering definedBy()
in src/main/java/org/junit/runner/manipulation/Ordering.java
24 5 2
public void filter()
in src/main/java/org/junit/runners/ParentRunner.java
24 5 1
private static List getCauseStackTraceLines()
in src/main/java/org/junit/internal/Throwables.java
22 8 1
public void evaluate()
in src/main/java/org/junit/internal/runners/statements/ExpectException.java
22 6 0
public Statement apply()
in src/main/java/org/junit/rules/TestWatcher.java
22 3 2
protected void runTest()
in src/main/java/junit/framework/TestCase.java
21 5 0
private static List getTrimmedStackTraceLines()
in src/main/java/org/junit/internal/Throwables.java
21 5 1
protected void runTestMethod()
in src/main/java/org/junit/internal/runners/MethodRoadie.java
21 7 0
private Statement statement()
in src/main/java/org/junit/rules/ExternalResource.java
21 3 1
protected Statement methodBlock()
in src/main/java/org/junit/runners/BlockJUnit4ClassRunner.java
21 2 1
protected String processArguments()
in src/main/java/junit/runner/BaseTestRunner.java
20 6 1
public static String getFilteredTrace()
in src/main/java/junit/runner/BaseTestRunner.java
20 5 1
public static Filter matchMethodDescription()
in src/main/java/org/junit/runner/manipulation/Filter.java
20 4 1
public void filter()
in src/main/java/org/junit/internal/runners/JUnit38ClassRunner.java
20 6 1
public Statement apply()
in src/main/java/org/junit/rules/TestWatchman.java
20 3 3
private static Runner parallelize()
in src/main/java/org/junit/experimental/ParallelComputer.java
19 3 1
private void addMultiPointMethods()
in src/main/java/org/junit/experimental/theories/internal/AllMembersSupplier.java
19 8 2
public List order()
in src/main/java/org/junit/runner/manipulation/Orderer.java
19 5 1
private Exception createTimeoutException()
in src/main/java/org/junit/internal/runners/statements/FailOnTimeout.java
19 4 1
private static List allParameters()
in src/main/java/org/junit/runners/Parameterized.java
19 6 2
public RunNotifier getNotifier()
in src/main/java/junit/framework/JUnit4TestAdapterCache.java
18 1 2
static boolean filterLine()
in src/main/java/junit/runner/BaseTestRunner.java
18 3 1
private static MaxHistory readHistory()
in src/main/java/org/junit/experimental/max/MaxHistory.java
18 2 1
public long getThreadCpuTime()
in src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java
18 6 1
private Thread getStuckThread()
in src/main/java/org/junit/internal/runners/statements/FailOnTimeout.java
18 7 1
private File createTemporaryFolderIn()
in src/main/java/org/junit/rules/TemporaryFolder.java
18 3 1
private Statement withRules()
in src/main/java/org/junit/runners/BlockJUnit4ClassRunner.java
18 5 3
private static void readPreferences()
in src/main/java/junit/runner/BaseTestRunner.java
17 5 0
private T findDeepAnnotation()
in src/main/java/org/junit/experimental/theories/ParameterSignature.java
17 5 3
private Request constructLeafRequest()
in src/main/java/org/junit/experimental/max/MaxCore.java
17 3 1
private Runner buildRunner()
in src/main/java/org/junit/experimental/max/MaxCore.java
17 5 1
private List validateAnnotatable()
in src/main/java/org/junit/validator/AnnotationsValidator.java
17 3 1
public Filter intersect()
in src/main/java/org/junit/runner/manipulation/Filter.java
17 4 1