2017-05-01 47 views
-1

我有以下的代碼,我試圖模擬:如何嘲笑dynamodbmapper掃描

public void getOrders(Response response){ 
    logger.log("Getting all orders"); 

    DynamoDBScanExpression scanExpression = new DynamoDBScanExpression() 
      .withProjectionExpression("OrderId"); 

    PaginatedScanList<Orders> orders = dynamoDBMapper.scan(Orders.class, scanExpression); 

    response.setData(orders..stream() 
      .collect(Collectors.toList())); 
} 

,我試圖嘲弄的方式是:

Mockito.when(mockDynamoDBMapper.scan(Orders.class, 
      Mockito.any())).thenReturn(mockPaginatedList); 

而且我得到以下異常: //不正確: 的someMethod如果匹配器與原始值組合

可能會出現此例外(anyObject(),「raw String」);在使用匹配器時,所有參數必須由匹配器提供。例如: //正確: someMethod(anyObject(),eq(「String by matcher」)); 欲瞭解更多信息,請參閱Matcher類的javadoc。

我應該怎樣用任何DynamoDBScanExpression對象模擬dbmapper.scan方法?

回答

0

該錯誤對您的問題有明確的答案。你想要的是:

Mockito.when(mockDynamoDBMapper.scan(eq(Orders.class), 
      Mockito.any())).thenReturn(mockPaginatedList); 

的匹配必須配備的匹配 - EQ(Orders.class),而不是原始值 - Orders.class