Ho appena scritto una classe di visualizzazione personalizzata che, tra le altre cose, consente a uno sviluppatore di impostare facilmente i bordi (ad esempio setBorderWidth
, setBorderColor
, setBorderWidthLeft
, ecc.). L'ho fatto ignorando onMeasure
/onDraw
e voglio verificare che la Vista disegna correttamente questi bordi.Qual è un buon modo per testare i metodi onMeasure/onLayout/onDraw di una vista personalizzata?
Idealmente, voglio qualcosa a un livello più alto di un test di unità: in pratica voglio applicare che se imposto i bordi, vengono disegnati come previsto; se non li metto non vengono disegnati; se li cambio, i nuovi bordi sono disegnati e quelli vecchi non sono più visibili. Questo mi consente di sapere che il mio punto di vista sta funzionando a un livello elevato.
cose che ho considerato:
- Ritenendo in isolamento con Robolectric e chiamare OnDraw manualmente con una tela finto (non testare invalidazione però)
- Fare una banco di prova di attività e in qualche modo il risparmio uno screenshot dell'attività e analizzandolo a livello di programmazione.
Nessuno di questi mi sembra ottimo, ma mi sto inclinando verso 2). Altre idee?