Pas du tout d'accord sur ce point. On peut soutenir que le développement piloté par les tests n'est pas possible en utilisant des simulateurs dynamiques, car ce que vous testez n'est pas nécessairement ce que vous implémentez. Imaginez que vous ayez ajouté une boucle foreach dans laquelle vous avez effectué un appel db à l'intérieur de la boucle. Cela échelles très mal. Si vous utilisiez des simulacres dynamiques pour se moquer de vos dépendances, vous risqueriez de rater les appels db, d'où l'absence de problème d'évolutivité car vous n'auriez pas besoin de vous moquer strictement de tous les appels db.
public void myMethod()
{
externalMethod1.doSomething();
foreach()
{
externalDbCall.doSql();
}
}
public void testMyMethodWithDynamicMocksPassesAndMissesDbCallInLoop()
{
expect(externalMethod1.doSomething();
}
public void testMyMethodWithStrictMocksFailsAndHighlightsDbCallInLoop()
{
expect(externalMethod1.doSomething();
}
petite bête -> "return null" devrait être quelque chose comme "renvoie la valeur par défaut pour le type de retour" –
@merlyn Morgan-Graham - excellent point :) – womp
@merlyn Morgan Graham: Merci beaucoup les gars pour la réponse rapide comme l'éclair. très appréciée. –