Supponiamo che tu stia scrivendo un'interfaccia che si suppone sia la tua API pubblica, chiamiamola Session
. L'implementazione è chiamata SessionImpl
e verrà inserita dal tuo framework DI.
Sono bloccato a pensare all'accesso di classe per questa classe SessionImpl
, se deve essere limitato al suo pacchetto (poiché l'API pubblica è l'interfaccia) ma non è in grado di testarlo da un progetto di test diverso, o rendilo pubblico e testalo.
La terza opzione verrebbe testata attraverso la sua interfaccia rendendo il DI utilizzare una fabbrica e chiamando la fabbrica dal test.
Qual è l'approccio corretto per mantenere un semplice codice gestibile?