Я пытаюсь заставить Powermock работать, издеваясь над конструктором.В тестируемом мной методе вызывается конструктор другого класса (и принимает много параметров, пустой конструктор недоступен).Я не хочу, чтобы этот конструктор вызывался, поскольку у меня нет всех необходимых ему параметров / значений.
@RunWith(PowerMockRunner.class)
@PrepareForTest({FeatureManager.class, MyFilter.class})
public class ApplicabilityTest {
@Before
public void setUp() {
PowerMockito.mock(Filter.class);
MyFilter myFilterMock = PowerMockito.mock(MyFilter.class);
try {
PowerMockito.whenNew(MyFilter.class).withAnyArguments()
.thenReturn(MyFilterMock);
}
@Test
public void testAllApplicableStuff() {
ApplicabilityComponent applicabilityComponent = new ApplicabilityComponent();
Map response = ApplicabilityComponent.getAllApplicableExclusions(myInputData);
}
Однако, когда я вызываю метод, в котором вызывается конструктор myFilter, он все равно входит в код конструктора.Чего мне не хватает?
Вот так выглядит вызов конструктора в реальном коде:
final MyFilter mFilter = new
MyFilter(
getNames(),
getPlaces(),
null,
provider,
procedure,
null,
new ArrayList(),
getServiceCategory(),
getCategory(),
null,
null,
getEffectiveDate(),
null);