Sto scrivendo nuovi casi di test, quindi per favore portami dietro. Scrivere un caso di prova per metodi privati
public Stock getStock(String stockTicker) {
Stock company = new Stock();
String url = getEndpointURL(stockTicker);
htmlDocument = fetchHTMLDocument(url); // private method
company.name = getStockName(); // private method uses htmlDocument
company.actualPrice = getActualPrice(); // private method uses htmlDocument
return company;
}
Il caso di test corrente è simile a
assertThat(selector.getActualPrice()).isGreaterThan(-1);
assertThat(selector.getStockName()).isNotNull();
Ma questo non mi consente di rendere i metodi private. .
Per rendere i metodi privati, e dal momento che voglio testare getStock
usando solo metodi pubblici (come raccomandato in" Come collaudi unitamente i metodi privati? "), voglio scrivere il test case per il metodo getStock
come sotto
Stock st = selector.getStock("AAPL");
assertThat(st.name).isNotNull();
io faccio asserzioni su Stock
oggetto
Tuttavia, in questo test, voglio evitare la chiamata di back-end fatta da fetchHTML()
e passare un documento personalizzato per testare il funzionamento del metodo getStockName()
e getActualPrice()
.
Come faccio a farlo senza rendere pubblici i metodi?