-
Mon gros problème, c'est que les tests ne peuvent pas tout envisager. Les jeux de données théoriques et ceux cassés spécifiquement pour les tests ne sont pas à la hauteur des vrais jeux de données pourris du monde réel.
La combinaison qui causera une catastrophe passera au travers des mailles du filet et causera le dépassement de données, dont on se rendra compte trop tard parce que l'assertion a disparu.
Il est tellement moins prise de tête de vérifier systématiquement les entrées de chaque fonction et laisser l'optimiseur supprimer les tests qui s'avèrent redondants.
Personnellement, je n'utilise les assertions que pour vérifier des situations genre "cette fonction ne retourne jamais null même quand elle échoue" ou "cette fonction est privée, l'appelant est dans le même fichier source, et il a déjà fait ce test inconditionnellement".