Я пытаюсь создать тест исключения JUnit для метода демаршаллинга.
Это мой метод демаршаллинга (примечание: я возвращаю строку из-за обычного тестирования демаршаллинга с ожидаемой строкой).
public String UnMarshalling(String FILE)
{
ArrayList<Player> playerList = new ArrayList<Player>();
try {
JAXBContext context = JAXBContext.newInstance(Match.class);
Unmarshaller um = context.createUnmarshaller();
Match Match2 = (Match) um.unmarshal(new InputStreamReader(new FileInputStream(FILE), StandardCharsets.UTF_8));
playerList = Match2.playerList;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (JAXBException e) {
e.printStackTrace();
}
return playerList.toString();
}
Вот тесты для этого метода.
@Test
public void unMarshallingTest() {
assertTrue(marshalling.UnMarshalling(matchxml).contains("Petras"));
}
@Test(expected=JAXBException.class)
public void marshallingTestException()
{
marshalling.UnMarshalling(matchbrokenxml);
}
То, что я пытаюсь добиться, это отправка испорченного xml, например, с неверной версией xml, и получение JAXBException
.
Пока я искал интернет для примера, но ничего не нашел. Любые предложения о том, как этого добиться?