Предоставление примера интеграционного теста не очень полезно.Интеграционный тест - это тест, который тестирует несколько компонентов вместе, чтобы увидеть, работают ли они вместе, как ожидалось.
Представьте, что вы написали лексер и парсер и хотели бы знать, правильно ли работают вместе.Вы можете сделать это так:
@Test
public void emptyContent() throws Exception {
assertParsable("");
}
@Test
public void complexExpression() throws Exception {
assertParsable("a + b - (a * b)");
}
@Test
public void missingClosingBrace() throws Exception {
assertUnparsable("(a * b");
}
private void assertParsable(String input) throws Exception {
assertFalse(parse(input).hasErrors());
}
private void assertParsable(String input) throws Exception {
assertTrue(parse(input).hasErrors());
}
private ParseResult parse(String input) {
return new Parser(new Lexer(input)).parse();
}
Редактировать:
Лично я предпочитаю различать быстрые и медленные тесты.Не имеет большого значения (по крайней мере, для меня), если я тестирую некоторые компоненты по отдельности или вместе ... важно то, что мои тесты бывают быстрыми.Конечно, если я тестирую много компонентов вместе, тесты не быстрые.Это зависит от того, чего вы пытаетесь достичь с помощью тестов (я использую их для написания тестов до / во время разработки и в качестве набора регрессий ... Мне не нужно использовать их, чтобы показать, что моя реализация соответствует документу с требованиями или чем-то ещевот так).