Ho cercato di seguire un flusso di lavoro TDD libero per uno dei miei progetti open source. È un'API per altri programmatori da utilizzare.Devo scrivere test prima che vengano compilati?
Come tale, un aspetto chiave oltre a far "funzionare" l'API sta anche progettando come verrà consumato. Ho sentito alcune persone dire che scrivere test prima che vengano compilati è una perdita di tempo e soggetto a riscrittura costante fino a quando l'API non è stabile. Ho anche sentito che dovrebbe seguire un flusso di lavoro in questo modo:
- Scrivi i test, che non verrà compilato
- Make it compilare
- Make it verde
sono stato cercando di seguire questo flusso di lavoro, ma finisco con alcune cose strane. Ad esempio, nella mia API ho questi due metodi:
Handles(string pattern); //had this one already
Handles(IPatternMatcher pattern); //needed this one
Avevo bisogno di ottenere la seconda forma del metodo aggiunto alla mia API. Quindi, mi sono ritrovato con un semplice test in questo modo:
public void Handles_SupportsIPatternMatcher()
{
var api=new MyAPI();
api.Handles(new TestPatternMatcher());
}
Che sembra uno spreco dopo che è stato implementato.
Devo continuare a seguire questo flusso di lavoro o ci sono modi per migliorarlo? Come faccio a evitare di scrivere test che fondamentalmente controllano solo gli errori del compilatore? Poiché si tratta di un'API pubblicamente consumabile, dovrei preoccuparmi di test come questo?
"Red-Green-Refactor" suona molto meglio di "Will not Compile-Compiles-Green": P –
Questa è un'ottima domanda per programmers.stackexchange.com –
@SimonWhitehead bene ... errore anche nel compilatore tecnico conta come "rosso" :) – Earlz