Как я могу издеваться над любыми объектами класса.Макет любых объектов класса
Я хочу, чтобы для любого файлового объекта возвращался true
, когда на него вызывается exists()
.
Что-то вроде:
Mockito.mock(File.class)
//return true for any object of File that calls exist()
File file = new File("thisDoesntExist");
assertEquals(true, file.exists());
Как это можно сделать?
Это метод испытуемого (вырублено)
@Override
public void load(InputArchive archive, int idx)
{
archive.beginNode("Files", idx);
File file = new File(archive.load("Path"));
if(file.exists())
{
//if it gets here it'll pass the test
}
}
Я думаю, что выше будет решить мою проблему, но в случае, если есть лучший/альтернативный способ решить мою проблему, я вам скажу, почему Я пытаюсь сделать это:
Причина, по которой я хочу сделать это, это то, что я читаю XML, который создаст файл, основанный на теге, затем проверит этот файлObjectCreatedFromXML, чтобы узнать, существует ли он и если он делает, тогда он будет делать некоторые другие вещи, которые мне нужны для этого.
Вы можете вставлять файл в любом месте; т. е. можете ли вы передать его в качестве параметра? Это облегчило бы это. – Makoto
@Makoto нет, файл создан из XML, но я могу изменить содержимое XML, облегчает ли это? – Aequitas
Не могли бы вы поделиться методом тестирования? Трудно давать предложения с такой небольшой информацией. Однако, если вы не можете изменить код создания файла, чтобы вы могли, например, введите фабрику, которая будет использоваться для создания файла (и может быть изделена в вашем тесте, чтобы вернуть «Файл», который всегда возвращает «истина» из 'exist'), этого не может быть сделано. –