Est-il nécessaire de tester 2 méthodes si elles utilisent seulement une méthode privée avec des arguments similaires?TDD, comment tester deux méthodes publiques si elles n'utilisent qu'une seule méthode privée sur rien d'autre?
Par exemple, j'ai une interface (contrat):
public interface IInterface
{
void Method1(arg1, arg2, arg3);
void Method2(arg1, arg2, arg3);
}
et la mise en œuvre de cette interface:
public class MyClass : IInterface
{
public void Method1(arg1, arg2, arg3)
{
Method3(arg1, arg2, arg3)
}
public void Method2(arg1, arg2, arg3)
{
Method3(arg1, arg2, arg3)
}
private void Method3(arg1, arg2, arg3)
{
// handle data
}
}
Par exemple, j'ai 3 tests pour Method1, est-il nécessaire de copier-coller ce test pour Method2 basé sur les règles TDD/RGB
Vous devez tester les deux méthodes pour vous assurer que rien ne va pas ou pour déterminer ce qui ne va pas lorsque vous modifiez ces méthodes. Mais la première question à se poser est pourquoi une classe a deux méthodes avec le même corps. –
@ChetanRanpariya Parce que j'ai l'interface, le contrat fort et dans d'autres implémentations d'interface nous avons 2 méthodes différentes. C'est un cas exceptionnel pour cette interface. –
Oui ... Je m'en rends compte. Il est dans le meilleur intérêt de couvrir tout le code possible d'une classe via un test unitaire même s'il s'agit d'un doublon. Happy Coding ... –