如何使用Mockito进行Integ测试



我有以下两种我想测试的方法

public class Orders {
    private final LambdaLogger logger;
    private final DynamoDBMapper dynamoDBMapper;
    public Orders(LambdaLogger logger, AmazonDynamoDB amazonDynamoDB){
        this.logger = logger;
        this.dynamoDBMapper = new DynamoDBMapper(amazonDynamoDB);
    }
    public List<Orders> getOrders(){
        logger.log("getting all orders");
        DynamoDBScanExpression scanExpression = new DynamoDBScanExpression()
                .withProjectionExpression("OrderId");
        logger.log("Expression created");
        PaginatedScanList<Orders> scan = dynamoDBMapper.scan(Orders.class, scanExpression);
        return scan.stream()
                .collect(Collectors.toList());
    }
}

现在,我想为此课程使用Mockito进行测试。有几件事让我感到困惑(或无法工作(。

首先,使用amazonDynamoDBClient创建DynamoDBMapper。因此,如果在我的班级I Mock AmazonDynamoDB中,dynamoDBMapper将如何创建?

我将如何测试我的功能实际设置投影正确?

我将如何测试PaginedScanlist?

它违反了依赖注入原则,不允许您创建单位测试。

订单不应创建任何对象,它应该通过构造函数或设置器方法作为依赖项接收它们。例如。您可以将dynamodbscanexpression -factory和dynamodbmapper传递到订单的构造函数。然后,您将能够用Mockito模拟它们。

相关内容

  • 没有找到相关文章

最新更新