現在、Mockitoを使って自分のクラスのメソッドをテストしています。私のクラスはListを持ち、このメソッドは同じクラスのオブジェクトを取ります。問題は、オブジェクトからリストを反復しようとするときです。私はリストにnullポインタを取得しています。下にコードスニペットが表示されます。リストをモックして、それを反復しようとしています
private Shipment shipment;
private Shipment shipment2;
@Mock
private Order mockOrder1;
@Mock
private Order mockOrder2;
@Mock
private Order mockOrder3;
@Mock
private ArrayList<Order> mockShipmentOrders;
@Mock
private ArrayList<Order> mockShipmentOrders2;
@Before
public void setUp(){
MockitoAnnotations.initMocks(this);
mockShipmentOrders.add(mockOrder1);
mockShipmentOrders.add(mockOrder2);
mockShipmentOrders2.add(mockOrder3);
shipment = new Shipment(1, mockShipmentOrders);
shipment2 = new Shipment(2, mockShipmentOrders2);
}
@Test
public void test_mergeShipments_increasesByOneWhenAShipmentOfOneAddedToAShipmentORderSizeOfTwo(){
shipment.mergeShipments(shipment2);
assertEquals(3, shipment.getShipmentOrders().size());
}
あなたは私のmockitoテストを参照して、以下の方法で私のクラスであることができ、上記:
パブリッククラス出荷{
private long shipmentID;
private List<Order> shipmentOrders;
public Shipment(long shipmentID, List<Order> shipmentOrders){
this.shipmentID = shipmentID;
this.shipmentOrders = shipmentOrders;
}
public List<Order> getShipmentOrders(){
return shipmentOrders;
}
public void mergeShipments(Shipment shipment2){
List<Order> existingShipment = shipment2.getShipmentOrders();
for (Order order : existingShipment){
shipmentOrders.add(order);
}
}
を私はjava.langのを取得していますテストを実行すると行のための.NullPointerException:for(Order order:existingShipment){ in mergeShipemts();
質問は次のとおりです。リストを模擬し、そのリストを呼び出して、その模擬リストを使ってforeachを実行することは可能ですか?
なぜあなたはリストを模擬する必要がありますか? –