У меня есть метод следующимиздеваться вызова метода с динамическим параметром
private void validate(String schemaName){
....
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);**strong text**
Source schemaFile = new SteamSource(getClass().getClassLoader().getResourceAsStream(schemaName));
Schema schema = factory.newSchema(schemaFile);
....
}
Этот метод дозвонились из другого метода которым мне нужно проверить (с помощью EasyMock и powermock). Я изо всех сил пытаюсь высмеять следующую строку
Source schemaFile = new SteamSource(getClass().getClassLoader().getResourceAsStream(schemaName));
Может кто-нибудь дать мне ключ к этому вопросу?
Текущий статус
Ниже приводится издеваться заявление
expectNew(StreamSource.class, anyObject(InputStream.class)).andReturn(mockedobject);
Powermock.replay(mockedobject, StreamSrouce.class);
Это бросает follwing исключение.
org.powermock.reflect.exceptions.TooManyConstructorsFoundException: Several matching constructors found, please specify the argument parameter types so that PowerMock can determine which method you're referring to.
Matching constructors in class javax.xml.transform.stream.StreamSource were:
Я также сталкиваюсь с той же проблемой. Пожалуйста, направляйте меня. –
@ K.Senthuran - Я добавил ответ. Надеюсь, это то, что вы ищете. – Avi
Помимо моего первоначального вопроса, было предложено использовать конструкторский макет, который также является возможностью. Вы можете посмотреть мой ответ на другой вопрос о том, как это сделать: http://stackoverflow.com/questions/19307121/replace-implementation-of-instantiated-class-without-to-touch-code-java/ 19308216 # 19308216 – Avi