2014-12-12 2 views
0

Я хочу передать Mock на мой unitUnderTest. Как я могу добиться этого в JMockit? См. Следующий фрагмент кода.Как передать mock to unitundertest с помощью jMockit?

@Test 
public void paymentResponseCreatorTest(){ 
    final ClassUnderTest unitUnderTest = new ClassUnderTest(); 

    MockUp<JSONObject> mockup = new MockUp<JSONObject>(){ 
     private final Map<String, JSONValue> map = new HashMap<>(); 

     @Mock 
     public JSONValue put(String key, JSONValue jsonValue){ 
      map.put(key, jsonValue); 
      return jsonValue; 
     } 
     @Mock 
     public JSONValue get(String key){ 
      return map.get(key); 
     } 
    }; 


    JSONObject jsonObject = mockup.getMockInstance(); 
    jsonObject.put("Status", new JSONString("Y")); 
    jsonObject.put("a", new JSONString("123")); 
    jsonObject.put("b", new JSONString("123")); 

    unitUnderTest.newInstance(jsonObject); 
} 
+0

Вы можете использовать '@ Tested' и' @ Injectable' аннотаций. Но я не могу точно сказать, что более уместно, не зная, какой объект нужно передать в «ClassUnderTest». –

ответ

0

Вы можете использовать Deencapsulation следующим образом:

Deencapsulation.setField(referenceOfUnitUnderTest, referenceOfMockedOrRealInstance); 
Смежные вопросы