Code Smell 76 - Generic Assertions

Don't make weak tests to create a false sensation of coverage.

TL;DR: Test Assertions should be precise. Not too Vague and not too specific. There is no silver bullet.

Problems
  • False Negatives

  • Lack of Trust

  • Solutions
  • Check the right case

  • Assert for a functional case.

  • Don't test implementation.

  • Sample Code
    Wrong
    square = Square(5)
    
    assert square.area() != 0
    
    # This will lead to false negatives since it is too vague
    Right
    square = Square(5)
    
    assert square.area() = 25
    
    # Assertion should be precise
    Detection
    With Mutation Testing techniques we can find these errors on our tests.
    Tags
  • Testing
  • Conclusion
    We should use development techniques like TDD that request concrete business cases and make concrete assertions based on our domain.
    Relations
    More info
    Credits
    This smell was inspired by Mario Cervera and used with his permission.
    Photo by Fleur on Unsplash

    A program that produces incorrect results twice as fast is infinitely slower.

    John Osterhout
    This article is part of the CodeSmell Series.

    25

    This website collects cookies to deliver better user experience

    Code Smell 76 - Generic Assertions