Ho una classe   DataImport   
con solo due metodi pubblici 
public void fromStream(InputStream inputStream);
public ImportCommand getImportCommand();
 Quando eseguo il test, invio alcuni dati di test al metodo   fromStream    
dataImport.fromStream(some stream with data...)
 Solo come testare il risultato di questo metodo è ottenere il   ImportCommand    da   getImportCommand    e testare se questo oggetto si trova nello stato in base all'input fornito. 
 Ma cosa succede se   ImportCommand    ha un solo metodo? 
public ImportResult execute();
 Potrei testare   ImportResult    (dopo aver richiamato   execute()    che implicherebbe alcuni mock e impostazioni aggiuntive) perché ha qualche stato esposto. Ma in questo modo sto testando   ImportCommand    e la classe   DataImport    in un test di unità che non mi sembra giusto. 
Ma esporre lo stato interiore delle classi che sto testando o accedere ai loro campi / metodi privati non è una buona cosa.
Questo significa che il mio design non è ok (come dovrei cambiarlo) o c'è un modo per risolvere questa situazione?
Contenuti correlati: anti-pattern TDD su SO