Я хотел бы написать некоторые государственные тесты, используя JMockit
, чтобы макет CSVRecord. Проблема в том, что JMockit
- final
(что означает, что я должен использовать насмешливую структуру, такую как JMockit
) и CSVRecord's
Конструктор имеет индивидуальную видимость пакета.Как мне высмеять класс, отмеченный как final, и имеет частный конструктор, используя jMockit
Так как это закрытый пакет, я не могу назвать новый CSVRecord(arg, arg, ...)
, что означает, что я никогда не смогу создать экземпляр моего макета. Его родитель, CSVParser, является единственным классом, который может создать экземпляр.
Есть ли у JMockit
способ справиться с этим сценарием?
примечание: JMockit
или Mockito
- единственные рамки, которые мы используем в этом проекте. Никакие другие рамки не будут приемлемыми. Я предпочитаю использовать MockUp.
Спасибо. Можно ли показать решение с помощью Deencapsulation.newInstance, чтобы получить ссылку на CSVRecord? – MedicineMan
Просто назовите его передачей 'CSVRecord.class' в качестве первого аргумента, за которым следуют любые другие аргументы, которые имеет желаемый конструктор в' CSVRecord'. –