Я хочу, чтобы проверить следующий класс:Mockito: макет вводил член вновь образованного объект
public class ClassToTest {
private List<Bar> bars = new LinkedList<>();
public makeBarsFromIDs(List<Integer> idList) {
for (Integer id : idList) {
Bar bar = new Bar();
bar.setID(id);
bars.add(bar);
}
}
public List<String> getFooStringsFromBars() {
List<String> fooStrings = new LinkedList();
for (Bar bar : this.bars)
fooStrings.add(bar.getFooListAsString());
return fooStrings;
}
}
В addToBarList, A Bar
объекта инстанциирован.
public class Bar {
private int myID;
@Inject
private FooRepository fooRepository;
public setID(int ID) {
myID = ID;
}
public String getFooListAsString() {
return fooRepository.findByID(myID).toString();
}
}
Бар использует FooRepository
, который я хочу высмеять. Это отлично работает, если я тестирую Bar
, но как я могу проверить ClassToTest
и все же высмеивать FooRepository
?
Я не могу просто высмеять Bar
, так как создаются несколько экземпляров с разными значениями. И мне нужно проверить, правильно ли они созданы.
Если вы хотите, чтобы дразнить 'Bar' затем вы не можете выполнить 'Bar bar = new Bar();' внутри метода. Если вы используете фреймворк вроде Spring, то вводите «Bar» в качестве зависимости, а затем издевайтесь над ним. – user2004685
Я не хочу издеваться над баром, я хочу издеваться над fooRepository внутри бара. – user2727133
Я немного удалил свой пример кода. Дело в том, что 'ClassToTest' создает несколько контуров« Bar »внутри цикла. Как я издеваться над ними? Я думал, может быть, какое-то расширение, такое как PowerMock, может это сделать. – user2727133