Я ищу хороший пример интеграционного теста с использованием кода Java или C # - PullRequest
2 голосов
/ 25 мая 2011

Существует огромное количество примеров модульных тестов, но не могли бы вы привести здесь или дать ссылку на хороший пример интеграционного теста, который не является просто метафорой?Я предпочитаю пример JUnit, но это не обязательно требование.

1 Ответ

2 голосов
/ 25 мая 2011

Предоставление примера интеграционного теста не очень полезно.Интеграционный тест - это тест, который тестирует несколько компонентов вместе, чтобы увидеть, работают ли они вместе, как ожидалось.

Представьте, что вы написали лексер и парсер и хотели бы знать, правильно ли работают вместе.Вы можете сделать это так:

@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();
}

Редактировать:

Лично я предпочитаю различать быстрые и медленные тесты.Не имеет большого значения (по крайней мере, для меня), если я тестирую некоторые компоненты по отдельности или вместе ... важно то, что мои тесты бывают быстрыми.Конечно, если я тестирую много компонентов вместе, тесты не быстрые.Это зависит от того, чего вы пытаетесь достичь с помощью тестов (я использую их для написания тестов до / во время разработки и в качестве набора регрессий ... Мне не нужно использовать их, чтобы показать, что моя реализация соответствует документу с требованиями или чем-то ещевот так).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...