2016-08-03 6 views
0

私はJMockitのローカルメソッドでDAOメソッドを嘲笑しています。実際のDAOメソッドは、ローカルモックメソッドがオーダーの配列を返すListを返します。 (これは意図されたデザインではありませんでしたが、私はリファクタリングの際の過失によりこの結果になりました)。しかしそれでも、これはうまくコンパイルされ、(残念ながら)テストケースをパスします。ArrayListを自動的にArrayListに変換するJMockit

実際のDAOメソッドと一致するように私のモックメソッドを修正しましたが、JMockitが私にそのような方法を模倣させる方法を知りたいと思います。戻り値の型とはどのように一致しませんか?これは機能かバグですか?

@Test 
    public void testApplyTemplate() throws Exception { 
     new Expectations() { 

      { 
       orderDAO.getOrders(); 
       result = getOrdersMock(); 
      } 
     }; 
     myService.applyTemplate(); 
     new Verifications() { 

      { 
       ... 
      } 
     }; 
    } 

private Order[] getOrdersMock() { 
     Order[] ordersArray = null; 
     // create 9 dummy orders, o1 to o9 
     orderArray = new Order[] { o1, o2, o3, o4, o5, o6, o7, o8, o9 };   
     return orderArray; 
    } 

public interface OrderDAO { 

    List<Order> getOrders(); 
} 

答えて

2

それが機能だし、それがresultフィールド(第五項)のためにAPI documentationで説明しています:タイプと異なるメソッドの戻り値の型からはIllegalArgumentExceptionがスローされます値を代入

戻り値の型に安全に変換できない場合を除きます。このような変換の1つは、配列からコレクションまたはイテレータになります。

関連する問題