JUnit 4
Conditional Complexity

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 1,330 units with 7,701 lines of code in units (71.8% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 1 medium complex units (51 lines of code)
    • 26 simple units (555 lines of code)
    • 1,303 very simple units (7,095 lines of code)
0% | 0% | <1% | 7% | 92%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
java0% | 0% | <1% | 7% | 92%
Legend:
51+
26-50
11-25
6-10
1-5
Conditional Complexity per Logical Component
primary logical decomposition
org/junit/internal0% | 0% | 2% | 12% | 84%
org/junit/experimental0% | 0% | 0% | 6% | 93%
junit/runner0% | 0% | 0% | 30% | 69%
org/junit/runners0% | 0% | 0% | 4% | 95%
junit/framework0% | 0% | 0% | 7% | 92%
junit/textui0% | 0% | 0% | 17% | 82%
org/junit/rules0% | 0% | 0% | 5% | 94%
junit/extensions0% | 0% | 0% | 0% | 100%
org/junit/validator0% | 0% | 0% | 0% | 100%
org/junit0% | 0% | 0% | 0% | 100%
org/junit/runner0% | 0% | 0% | 0% | 100%
org/junit/matchers0% | 0% | 0% | 0% | 100%
Legend:
51+
26-50
11-25
6-10
1-5
Most Complex Units
Top 50 most complex 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
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
private void addMultiPointMethods()
in src/main/java/org/junit/experimental/theories/internal/AllMembersSupplier.java
19 8 2
private boolean hasCorrectCategoryAnnotation()
in src/main/java/org/junit/experimental/categories/Categories.java
26 8 1
private static List getCauseStackTraceLines()
in src/main/java/org/junit/internal/Throwables.java
22 8 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
static Object getBeanObject()
in src/main/java/org/junit/internal/management/ManagementFactory.java
13 7 1
protected void runTestMethod()
in src/main/java/org/junit/internal/runners/MethodRoadie.java
21 7 0
private static Description makeDescription()
in src/main/java/org/junit/internal/runners/JUnit38ClassRunner.java
25 7 1
private Thread getStuckThread()
in src/main/java/org/junit/internal/runners/statements/FailOnTimeout.java
18 7 1
protected void validateFields()
in src/main/java/org/junit/runners/parameterized/BlockJUnit4ClassRunnerWithParameters.java
30 7 1
static public void assertEquals()
in src/main/java/junit/framework/Assert.java
10 6 3
private void addTestsFromTestCase()
in src/main/java/junit/framework/TestSuite.java
24 6 1
protected String processArguments()
in src/main/java/junit/runner/BaseTestRunner.java
20 6 1
private void validateDataPointFields()
in src/main/java/org/junit/experimental/theories/Theories.java
14 6 1
private void validateDataPointMethods()
in src/main/java/org/junit/experimental/theories/Theories.java
14 6 1
public long getThreadCpuTime()
in src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java
18 6 1
public boolean isThreadCpuTimeSupported()
in src/main/java/org/junit/internal/management/ReflectiveThreadMXBean.java
12 6 0
public List getInputArguments()
in src/main/java/org/junit/internal/management/ReflectiveRuntimeMXBean.java
12 6 0
public List getAnnotatedMethods()
in src/main/java/org/junit/internal/runners/TestClass.java
16 6 1
public void filter()
in src/main/java/org/junit/internal/runners/JUnit38ClassRunner.java
20 6 1
public void evaluate()
in src/main/java/org/junit/internal/runners/statements/ExpectException.java
22 6 0
public boolean equals()
in src/main/java/org/junit/runners/parameterized/TestWithParameters.java
15 6 1
private static List allParameters()
in src/main/java/org/junit/runners/Parameterized.java
19 6 2
static public void assertEquals()
in src/main/java/junit/framework/Assert.java
9 5 3
public void runBare()
in src/main/java/junit/framework/TestCase.java
16 5 0
protected void runTest()
in src/main/java/junit/framework/TestCase.java
21 5 0
private static void readPreferences()
in src/main/java/junit/runner/BaseTestRunner.java
17 5 0
public static String getFilteredTrace()
in src/main/java/junit/runner/BaseTestRunner.java
20 5 1
protected void validateTestMethods()
in src/main/java/org/junit/experimental/theories/Theories.java
16 5 1
public Object getValue()
in src/main/java/org/junit/experimental/theories/internal/AllMembersSupplier.java
15 5 0
private T findDeepAnnotation()
in src/main/java/org/junit/experimental/theories/ParameterSignature.java
17 5 3
private Runner buildRunner()
in src/main/java/org/junit/experimental/max/MaxCore.java
17 5 1
public List order()
in src/main/java/org/junit/runner/manipulation/Orderer.java
19 5 1
public static Ordering definedBy()
in src/main/java/org/junit/runner/manipulation/Ordering.java
24 5 2
private static List getTrimmedStackTraceLines()
in src/main/java/org/junit/internal/Throwables.java
21 5 1
public void describeTo()
in src/main/java/org/junit/internal/AssumptionViolatedException.java
16 5 1
private boolean isShadowed()
in src/main/java/org/junit/internal/runners/TestClass.java
14 5 2
private void runBefores()
in src/main/java/org/junit/internal/runners/MethodRoadie.java
17 5 0
public ErrorReportingRunner()
in src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
12 5 2
private List getCauses()
in src/main/java/org/junit/internal/runners/ErrorReportingRunner.java
16 5 1
private Throwable getResult()
in src/main/java/org/junit/internal/runners/statements/FailOnTimeout.java
15 5 2
private void runBefores()
in src/main/java/org/junit/internal/runners/ClassRoadie.java
17 5 0
public void validate()
in src/main/java/org/junit/internal/runners/rules/RuleMemberValidator.java
13 5 3
public static void assertEquals()
in src/main/java/org/junit/Assert.java
13 5 3
private boolean recursiveDelete()
in src/main/java/org/junit/rules/TemporaryFolder.java
14 5 1
private Object createTestUsingFieldInjection()
in src/main/java/org/junit/runners/parameterized/BlockJUnit4ClassRunnerWithParameters.java
36 5 0