Bird
Raised Fist0
JUnittesting~10 mins

Test suites with @Suite in JUnit - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a test suite class using @Suite annotation.

JUnit
import org.junit.platform.suite.api.Suite;
import org.junit.platform.suite.api.SelectClasses;

@Suite
@SelectClasses({TestClass1.class, TestClass2.class})
public class [1] {
}
Drag options to blanks, or click blank then click option'
ATestSuiteClass
BMyTestSuite
CSuiteRunner
DTestRunner
Attempts:
3 left
💡 Hint
Common Mistakes
Using invalid class names or Java keywords.
Omitting the class declaration.
2fill in blank
medium

Complete the code to import the correct package for @Suite annotation.

JUnit
import [1];

@Suite
public class MyTestSuite {
}
Drag options to blanks, or click blank then click option'
Aorg.junit.platform.suite.api.Suite
Borg.junit.Test
Corg.junit.jupiter.api.Test
Dorg.junit.runner.RunWith
Attempts:
3 left
💡 Hint
Common Mistakes
Importing JUnit 4 annotations instead of JUnit 5.
Confusing @Suite with @RunWith.
3fill in blank
hard

Fix the error in the test suite declaration by completing the missing annotation.

JUnit
import org.junit.platform.suite.api.Suite;
import org.junit.platform.suite.api.SelectClasses;

@Suite
[1]
public class MyTestSuite {
}
Drag options to blanks, or click blank then click option'
A@RunWith(Suite.class)
B@SelectPackages("com.example.tests")
C@SelectClasses({TestClass1.class, TestClass2.class})
D@Test
Attempts:
3 left
💡 Hint
Common Mistakes
Using @RunWith which is from JUnit 4.
Using @Test which is for test methods, not suites.
4fill in blank
hard

Fill both blanks to create a test suite that selects all tests in a package.

JUnit
import org.junit.platform.suite.api.Suite;
import org.junit.platform.suite.api.[1];

@Suite
@[2]("com.example.tests")
public class PackageTestSuite {
}
Drag options to blanks, or click blank then click option'
ASelectPackages
BSelectClasses
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing @SelectClasses with @SelectPackages.
Importing the wrong annotation.
5fill in blank
hard

Fill both blanks to create a suite that selects specific classes and tags.

JUnit
import org.junit.platform.suite.api.Suite;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.platform.suite.api.[1];

@Suite
@SelectClasses({TestA.class, TestB.class})
@[2]({"fast", "unit"})
public class TaggedTestSuite {
    // Suite runs only tests with specified tags
    // and classes
}
Drag options to blanks, or click blank then click option'
AIncludeTags
BExcludeTags
Attempts:
3 left
💡 Hint
Common Mistakes
Using ExcludeTags instead of IncludeTags.
Mismatching import and annotation names.

Practice

(1/5)
1. What is the main purpose of using @Suite in JUnit testing?
easy
A. To group multiple test classes to run together as one unit
B. To mark a method as a test case
C. To ignore a test class during execution
D. To specify the order of test methods within a class

Solution

  1. Step 1: Understand the role of @Suite

    @Suite is an annotation used to create a test suite that groups multiple test classes.
  2. Step 2: Compare with other annotations

    @Test marks methods as tests, @Ignore skips tests, and ordering is handled differently, so these do not match @Suite's purpose.
  3. Final Answer:

    To group multiple test classes to run together as one unit -> Option A
  4. Quick Check:

    @Suite groups classes = B [OK]
Hint: Remember: @Suite groups classes, not individual tests [OK]
Common Mistakes:
  • Confusing @Suite with @Test annotation
  • Thinking @Suite controls test method order
  • Assuming @Suite skips tests
2. Which of the following is the correct way to declare a JUnit 5 test suite using @Suite and @SelectClasses?
easy
A. @Suite @SelectClasses({TestA.class, TestB.class}) public class AllTests {}
B. @SuiteClasses({TestA.class, TestB.class}) public class AllTests {}
C. @RunWith(Suite.class) @SuiteClasses({TestA.class, TestB.class}) public class AllTests {}
D. @TestSuite @SelectClasses({TestA.class, TestB.class}) public class AllTests {}

Solution

  1. Step 1: Identify JUnit 5 suite syntax

    JUnit 5 uses @Suite and @SelectClasses annotations together to define a suite.
  2. Step 2: Check other options for JUnit 4 syntax or invalid annotations

    @RunWith and @SuiteClasses are JUnit 4 style; @TestSuite is invalid.
  3. Final Answer:

    @Suite @SelectClasses({TestA.class, TestB.class}) public class AllTests {} -> Option A
  4. Quick Check:

    JUnit 5 suite = @Suite + @SelectClasses [OK]
Hint: JUnit 5 suites use @Suite and @SelectClasses together [OK]
Common Mistakes:
  • Using JUnit 4 annotations in JUnit 5 code
  • Misspelling @SelectClasses
  • Omitting the public class declaration
3. Given the following test suite code, what will happen when you run AllTests?
@Suite
@SelectClasses({TestOne.class, TestTwo.class})
public class AllTests {}
medium
A. Only TestTwo's tests will run
B. Both TestOne and TestTwo classes will run all their test methods
C. Only TestOne's tests will run
D. No tests will run because the suite class is empty

Solution

  1. Step 1: Understand @SelectClasses effect

    @SelectClasses lists test classes to include in the suite; all their tests run.
  2. Step 2: Confirm suite class content is irrelevant

    The suite class itself is a container; it does not need test methods to run included tests.
  3. Final Answer:

    Both TestOne and TestTwo classes will run all their test methods -> Option B
  4. Quick Check:

    @SelectClasses runs all listed classes [OK]
Hint: Suite runs all classes listed in @SelectClasses [OK]
Common Mistakes:
  • Thinking suite class must have test methods
  • Assuming only first class runs
  • Believing empty suite class means no tests
4. Identify the error in this JUnit 5 test suite declaration:
@Suite
@SelectClasses({TestA.class, TestB.class})
public void AllTests() {}
medium
A. Suite class must extend a base test class
B. Missing @Test annotation on AllTests method
C. @SelectClasses cannot include multiple classes
D. Suite class should not be a method; it must be a class declaration

Solution

  1. Step 1: Check the suite declaration syntax

    The suite must be a class, not a method. Here, 'public void AllTests()' is a method.
  2. Step 2: Validate other options

    @Test is not needed on suite, @SelectClasses supports multiple classes, and no inheritance is required.
  3. Final Answer:

    Suite class should not be a method; it must be a class declaration -> Option D
  4. Quick Check:

    Suite must be a class, not a method [OK]
Hint: Suite must be a class, not a method [OK]
Common Mistakes:
  • Writing suite as a method instead of a class
  • Adding unnecessary @Test to suite
  • Thinking suite must extend another class
5. You want to create a test suite that runs LoginTests, PaymentTests, and LogoutTests classes. Which of the following is the best way to write this suite in JUnit 5?
hard
A. @Suite @SelectPackages({"com.example.tests"}) public class FullSuite {}
B. @SuiteClasses({LoginTests.class, PaymentTests.class, LogoutTests.class}) public class FullSuite {}
C. @Suite @SelectClasses({LoginTests.class, PaymentTests.class, LogoutTests.class}) public class FullSuite {}
D. @RunWith(Suite.class) @SelectClasses({LoginTests.class, PaymentTests.class, LogoutTests.class}) public class FullSuite {}

Solution

  1. Step 1: Use correct JUnit 5 annotations

    JUnit 5 uses @Suite and @SelectClasses to specify test classes in a suite.
  2. Step 2: Evaluate other options

    @SuiteClasses and @RunWith are JUnit 4 style; @SelectPackages is for packages, not specific classes.
  3. Final Answer:

    @Suite @SelectClasses({LoginTests.class, PaymentTests.class, LogoutTests.class}) public class FullSuite {} -> Option C
  4. Quick Check:

    JUnit 5 suite = @Suite + @SelectClasses [OK]
Hint: Use @Suite with @SelectClasses listing all test classes [OK]
Common Mistakes:
  • Mixing JUnit 4 and 5 annotations
  • Using @SelectPackages when classes are needed
  • Omitting public class declaration
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard