Lazy Test
Definition:
More than one test case with the same fixture that tests the same method. This smell affects test maintainability, as assertions testing the same method should be in the same test case. Like EAGER TEST, the original definition [3] leaves some details to interpretation. We consider every call to the class under test as a potential cause of LAZY TEST, irrespective of whether their results are used in an assertion.
Code Example:
@Test
public void testDecrypt() throws Exception {
FileInputStream file = new FileInputStream(ENCRYPTED_DATA_FILE_4_14);
byte[] enfileData = new byte[file.available()];
FileInputStream input = new FileInputStream(DECRYPTED_DATA_FILE_4_14);
byte[] fileData = new byte[input.available()];
input.read(fileData);
input.close();
file.read(enfileData);
file.close();
String expectedResult = new String(fileData, "UTF-8");
assertEquals("Testing simple decrypt",expectedResult, Cryptographer.decrypt(enfileData, "test"));
}
@Test
public void testEncrypt() throws Exception {
String xml = readFileAsString(DECRYPTED_DATA_FILE_4_14);
byte[] encrypted = Cryptographer.encrypt(xml, "test");
String decrypt = Cryptographer.decrypt(encrypted, "test");
assertEquals(xml, decrypt);
}
References:
Quality attributes
- Code Example
- Cause and Effect
- Frequency
- Refactoring
An Empirical Study into the Relationship Between Class Features and Test Smells
An Exploratory Study on the Refactoring of Unit Test Files in Android Applications
An exploratory study of the relationship between software test smells and fault-proneness
Assessing diffusion and perception of test smells in scala projects
Automatic Identification of High-Impact Bug Report by Product and Test Code Quality
Developers perception on the severity of test smells: an empirical study
Enhancing developers’ awareness on test suites’ quality with test smell summaries
Handling Test Smells in Python: Results from a Mixed-Method Study
On the diffusion of test smells and their relationship with test code quality of Java projects
On the distribution of test smells in open source Android applications: an exploratory study
On the interplay between software testing and evolution and its effect on program comprehension
On the test smells detection: an empirical study on the jnose test accuracy
Refactoring Test Smells With JUnit 5: Why Should Developers Keep Up-to-Date?
The secret life of test smells-an empirical study on test smell evolution and maintenance