Oltre a vista del codice un commento ha suggerito che l'uso di snake_case per denominare i metodi di prova è una buona idea.
Questo ha contraddetto le mie opinioni e ho fatto delle ricerche e sembra che ci siano molti esempi che effettivamente usa snake_case per questo.
Io stesso, uso i nomi classici di camelCase come testXyz
per i test unitari o un approccio BDD givenXyzWhenXyzThenXyz
per i test di integrazione.
Esiste anche una terza opzione che combina entrambi modi, ad es useCase_WhenSomething_ThenAssertion
.
La mia domanda è : quali sono i buoni argomenti per l'utilizzo di snake_case o camelCase per denominare i metodi di test?
Vorrei iniziare con alcuni argomenti della mia esperienza e lavoro:
In favore di camelCase
- Segue le convenzioni generali sulla codifica Java dell'uso di camelCase.
- È coerente con codice di produzione.
- I personalmente trovare camelCase non è più difficile da leggere rispetto a snake_case - Sono comunque abituato a nomi descrittivi dal codice di produzione.
- Il supporto IDE soffre quando si utilizza snake_case (almeno Eclipse).
In favore di snake_case
- Alcuni framework possono generare report dai test e l'uso di snake_case consente a tali framework di creare frasi corrette dai nomi dei test.
In favore di una combinazione di entrambi
Quali sono gli altri argomenti? In che modo forse il modello in cui i metodi di test sono denominati influenzano gli argomenti?
Piccolo disclaimer: ovviamente, in ultima analisi, si tratta di convenzioni di squadra. Tuttavia, potrebbe valere la pena discutere di pro e contro per alcune convenzioni.