With Unit Test Assistant you can easily create multiple test cases for methods from a selected class or items selected in the Project Explorer by choosing the Add test case(s) option in the Unit Test Assistant view or in your IDE context menu. The methods are analyzed to create runnable test cases with initial values and sample assertions, which can be easily modified or uncommented.
Creating Multiple Tests for One File
Open the Unit Test Assistant - Add test case(s) dialog in one of the following ways:
- Select a class in the editor and click the Add test case(s) action link in the Unit Test Assistant view:
- Right-click a file in Project Explorer and select Unit Testing> Add test case(s) from the context menu:
If you are creating multiple tests for Spring components, the button label will change into Add Spring test case(s). See Creating a Spring Unit Test for more information about creating and configuring Spring unit tests with UTA.
- Specify the test type:
- Regular - Creates regular test cases.
- Parameterized - Creates parameterized test cases (see Creating a Parameterized Unit Test for details).
- Combined - Creates parameterized test cases for methods that can be tested against different arguments. For other methods, regular tests are created.
The options are only available if you configured UTA to use JUnit 4 (see Configuring General Options) because parameterization is not supported for JUnit 5 tests.
- Specify the object initialization mode:
- Deep - (default) Prepares objects and mocks using data collected from the tested method and other methods that are called when the test is executed.
- Shallow - Prepares objects and mocks using data collected from the tested method.
Specify how you want mocks to be initialized:
- Configure within test method - Initializes mocks by declaring and initializing the object under test and its dependencies within the test method.
- Use @InjectMocks - Initializes mocks by using the @InjectMocks annotation to mark fields on which mock injection should be performed and the @Mock annotation for dependencies.
See Configuring Mock Initialization for details.
- (Optional) Enable or disable the Timeout for running created tests (in ms) option and specify the time limit (in milliseconds) for executing this set of test. If the time limit is exceeded, the test execution will stop and the test will fail. The information about the error will be displayed as a Recommendation in the UTA interface. This option is enabled and set to 1000 by default.
Select the methods for which you want to create test cases (you can use the Select All or Deselect All buttons for your convenience).
If UTA detects Spring classes in the selected resources, it will display additional options:
- Use Spring test framework within tests for Spring classes -allows you to specify the kind of tests you want to create for Spring classes: if enabled, UTA will create the tests using the Spring test framework (see Spring MVC Test Framework for details); if disabled, UTA will create standard JUnit tests.
- Select Spring Handler Methods - allows you to select all the Spring controller handler methods and deselect all the other methods in the list.
See Creating a Spring Unit Test for details about support for the Spring framework.
- Click OK to create test cases.
UTA will add new test cases for all selected methods in the file (including methods that already have corresponding tests).
- View the tests to modify or uncomment the default UTA values if necessary.
- Run the test with UTA to collect coverage information and recommendations for possible improvements (see Executing Unit Tests with Unit Test Assistant).
Creating Multiple Tests for More Than One File
You can create test cases for more than one file.
- Right-click the files, package(s), or project(s) in your IDE.
You can also create test cases for individual methods selected in the Package Explorer if they are of the same class. If you select methods from different classes, or an individual method and a class or a package, test cases will not be generated.
Click Unit Testing> Add test case(s) to open the the Unit Test Assistant - Add test case(s) dialog.
- Configure the options as described in steps 2-5 in the Creating Multiple Tests for One File section.
- (Optional) Hover over the License usage summary option to display an estimated number of tokens required to create test cases for the selected resources. Once the test are generated, the summary dialog will show how many tokens were actually consumed, and how many remain (see Licensing).
- Click OK to create cases. UTA will skip the files that are not testable or whose corresponding test classes already exist.
Creating test cases for more than one file requires the 'Bulk creation' license feature. The feature provides license tokens that monitor the number of files for which test cases are generated (the number of tokens depends on your license agreement). When creating test cases for multiple files, UTA consumes one token per .java file you selected.
Files for which UTA does not generate any test cases (for example, interfaces or abstract classes) do not consume a token.
Once a token has been consumed for a given java file, regenerating tests for that java file doesn't consume another token, even if the first test is deleted.
To streamline test creation, we recommend that you leverage UTA's capability to automatically update multiple test with available assertions.
- Disable the Generate sample assertions option in the UTA preferences (see Configuring Preferences).
- Create multiple tests for methods from a file, package, or project (see Creating Multiple Tests from the Context Menu).
- Update the tests with correct input values.
- Run the tests to ensure they pass.
- Right-click the same file, package, or project that you selected in Step 2.
- Choose Unit Testing> Track and make assertions from the context menu.
See Tracking Object Changes and Creating Assertions for details.