Sto scrivendo un test unitario con i mock e sono preoccupato di dover specificare il test. L'idea è che se l'implementazione cambia in modo compatibile, il test non dovrebbe fallire poiché ciò rende il test fragile e scomodo.
Ad esempio, se l'implementazione chiama mock.add("foo")
seguita da mock.add("bar")
o chiama mock.add("foo","bar")
non dovrebbe avere importanza, ma da una prospettiva beffarda tu sei quindi portato a convalidare tutte le possibilità che avrebbero potuto essere implementate. Per i metodi con molti sovraccarichi per comodità (ad es. System.out.println
) ciò sarebbe estenuante!
Quindi, per essere chiari, la mia domanda è: come lavorare con i mock quando sono molti metodi equivalenti che potrebbero essere chiamati dall'implementazione in modo tale che i test risultanti non siano fragili ?
PS- Non penso che sia importante, ma sono su Java usando Mockito, ma mi sembra che ci sia qualche approccio cross-language applicabile che mi manca. Il nostro attuale approccio è quello di effettuare test fragili e risolverli in seguito.