如何在Java中测试具有私有方法、字段和内部类的类?
大家好。我是Java和单元测试的新手,使用JUnit 5。我有一个`OrderProcessor`类,它包含私有方法、私有字段和一个内部类。我不知道如何正确地为它编写测试。
以下是我的类示例:
```java
public class OrderProcessor {
private final PaymentGateway gateway;
private List items = new ArrayList<>();
public OrderProcessor(PaymentGateway gateway) {
this.gateway = gateway;
}
public boolean processOrder(Order order) {
if (!validateOrder(order)) {
return false;
}
double total = calculateTotal(order);
return gateway.charge(order.getCustomer(), total);
}
private boolean validateOrder(Order order) {
return order != null && order.getItems() != null && !order.getItems().isEmpty();
}
private double calculateTotal(Order order) {
double sum = 0;
for (OrderItem item : order.getItems()) {
sum += item.getPrice();
}
return sum;
}
private class OrderItem {
private String name;
private double price;
public OrderItem(String name, double price) {
this.name = name;
this.price = price;
}
public double getPrice() {
return price;
}
}
}
```