Test Code Duplication

Definition:

  • This test smell normally identifies classes that contain test methods with repeated test code steps.

Also Known As:

  • Second Class Citizen

Code Example:

class TestFlight(unittest.TestCase):
    def test_mileage_init(self):
        airLine = '2569'
        mileage = 1000
        flight = Flight(airLine,mileage)
        self.assertEqual(flight.mileage,1000)

    def test_fuel_is_full(self):
        airLine = '2569'
        mileage = 1000
        flight = Flight(airLine,mileage)
        self.assertTrue(flight.fullFuel)

    def test_is_valid_air_line_code(self):
        airLine = '2569'
        mileage = 1000
        flight = Flight(airLine,mileage)
        self.assertTrue(flight.isValidAirLineCode())

if __name__ == '__main__':
    unittest.main(argv=['first-arg-is-ignored'], exit=False)

References:

Quality attributes

  • - Code Example

  • - Cause and Effect

  • - Frequency

  • - Refactoring