I have foolowing class which I would like to mock:
BusineesLayer:
/** * Created by Alexandr on 14.05.2016. */ public class BusineesLayer { public OrderModel orderModel; public DbService dbService; ... public BusineesLayer(OrderModel orderModel,DbService dbService) { this.orderModel = orderModel; dbService = dbService; } public BusineesLayer() { } public boolean checkItemsInDb(List<Items> items) throws HandleOrderExeption { ... return result } public boolean handleOrder() throws HandleOrderExeption { checkItemsInDb(orderModel.getItemsList()); boolean res =dbService.addOrder(orderModel.getItemsList(), orderModel.getCustumerName(), countTotalSum(orderModel.getItemsList()) ); return res; } } I would like to test hanldeOrder() method and in order to make it less excess insted of checkItemsinDb() inside invoke "true";
So, my test looks like this:
@Test public void handleorderTest() { ... BusineesLayer layer = Mockito.mock(BusineesLayer.class); layer.dbService = busineesLayer.dbService; layer.orderModel = busineesLayer.orderModel; Mockito.when(layer.checkItemsInDb()).thenReturn(true); boolean res = layer.handleOrder(); assertThat(res, equalTo(true)); } but it always return false and doesn't go through handlOrder() at all
Is any ways to solve it? Or how can I refactor my code to test it?