Ho provato a scrivere test unit UI per le mie app GUI e ho riscontrato il problema che, mentre funzionano bene quando le scrivo inizialmente, risultano fragili e si rompono ogni volta che cambia il design (cioè abbastanza spesso). Faccio fatica a trovare una serie di linee guida che mi porterebbero ad avere unit test mantenibili per la GUI.
Per ora, una cosa che ho scoperto è che i test che dicono "questo componente dovrebbe mostrare i suoi dati di input da qualche parte" sono buoni (e questo è molto facile con HTML). I test che verificano uno stato specifico di una parte specifica del componente sono generalmente fragili. I test che vanno come click-click-click-prevedono, che cercano di seguire il comportamento dell'utente e la logica aziendale sottostante (che è la parte più importante) di solito risultano fragili. Come scrivo buoni test?
Per essere più precisi, vorrei conoscere alcuni schemi su cosa avrei potuto testare nella mia UI, non esattamente su come testarlo. Convenzioni di denominazione e identificatori fissi sono buoni, ma non risolvono il problema principale, ovvero che le GUI cambiano molto. Mi piacerebbe testare i comportamenti che difficilmente cambieranno. Come trovare la cosa giusta da testare?