# Replace JUnit Timeout Annotation Property with assertTimeout
# Description
The JUnit Jupiter API (opens new window) provides timeout assertions, i.e., assertions that make sure an executable completes before a timeout is exceeded.
In JUnit 4 this is achieved by using the timeout
(opens new window) property of @Test(timeout=...)
annotation.
This rule removes the timeout
annotation property and inserts an assertTimeout
(opens new window) instead.
Requirements
This rule requires the following library to be present:
- org.junit.jupiter:junit-jupiter-api:5.0.0
# Benefits
Improves the tests readability. Helps migrating to JUnit 5.
# Tags
# Code Changes
# Removing timeout
Property
Pre
@Test(timeout=100)
public void timeoutTest() throws PersistenceException {
userRepository.save(new User("10", "John", "Snow"));
}
Post
@Test
public void timeoutTest() throws PersistenceException {
assertTimeout(ofMillis(100), () -> userRepository.save(new User("10", "John", "Snow")));
}
# Multiple Statements
Pre
@Test(timeout=100)
public void multipleStatements() throws PersistenceException {
User user = new User("10", "John", "Snow");
userRepository.save(user);
}
Post
@Test
public void multipleStatements() throws PersistenceException {
assertTimeout(ofMillis(100), () -> {
User user = new User("10", "John", "Snow");
userRepository.save(user);
});
}
# Multiple Annotation Properties
Pre
@Test(expected=PersistenceException.class, timeout=100)
public void multipleAnnotationProperties() throws PersistenceException {
userRepository.save(new User("10", "John", "Stark"));
}
Post
@Test(expected=PersistenceException.class)
public void multipleAnnotationProperties() throws PersistenceException {
assertTimeout(ofMillis(100), () -> userRepository.save(new User("10", "John", "Stark")));
}
🛠️ Auto-refactor Available
You can auto-refactor this with jSparrow.
Drop this button to your Eclipse IDE workspace to install jSparrow for free:
Need help? Check out our installation guide.
# Properties
Property | Value |
---|---|
Rule ID | ReplaceJUnitTimeoutAnnotationProperty |
First seen in jSparrow version | 3.26.0 |
Minimum Java version | 8 |
Remediation cost | 5 min |