public double getPrice(Stock stock) throws BizException;
}
复制代码
这里的BizException是继承自RuntimeException的自定义异常
public class BizException extends RuntimeException
这里可以假设,例如在调用这个接口时,出现了没有这个股票或者其它网络通信层面的异常情况,就会抛出自定义的BizException。这样,就会对股票投资组合价值计算的方法提供更好的鲁棒性。
来写一个用例模拟下。
@Test
public void testPortfolioStockServiceException(){
//add stocks to the portfolio
portfolio.setStocks(stocks);
//mock the behavior of stock service to return the value of various stocks
when(stockService.getPrice(teslaStock))
.thenThrow( new BizException("1000","stockServiceException"));