2013-08-28 1 views
1

Когда я использую PowerMock для издевательства над конструктором, я хочу указать тип пареметров. Я использую методPowerMock expectNew, как указать тип параметров

PowerMock.expectNew(Class<T> type, Class<?>[] parameterTypes, Object... arguments) 

Если я хочу, чтобы указать тип String, какие Шоуда я заполнить parameterTypes?

ответ

2

Учитывая эти примеры классов:

public class MyClass { 
    public MyClass(String theParam) { 
     //Some interesting code... 
    } 
} 

public class MyFactory { 
    public MyClass createMyClass() { 
     return new MyClass("foo"); 
    } 
} 

Тогда вы бы сделать expectNew следующим образом:

public class MyFactoryTest { 
    @Test 
    public void testCreateMyClass() { 
     //... 

     PowerMock.expectNew(MyClass.class, new Class[] {String.class}, "foo"); 

     //... 
    } 
} 
+0

Большое спасибо, это очень useful.But Мне очень жаль, я не могу голосовать до из-за низкой репутации. – Bort

+0

Как автор вопроса, вы все равно можете принять ответ. :-) –

+0

привет, это я снова.когда я использую Whitebox.invokeConstructor(), что я делаю, чтобы указать тип параметров – Bort