Интеграционное тестирование на сервере http - junit? - PullRequest
0 голосов
/ 03 мая 2011

Я хочу провести интеграционные тесты с http-сервером. Пока что у меня есть только опыт использования junit для модульного тестирования.

У меня есть два требования: у фреймворка должен быть плагин maven, а код тестовых примеров должен быть чистым, поэтому никаких грязных хаков и шаблонного кода.

Обычный JUnit хорош для модульных тестов, методы @Test индивидуальны. Но для интеграционного тестирования мне нужно обработать несколько зависимых шагов, которые должны поменять какое-то состояние (переменные).

Я уже прочитал:

Можем ли мы использовать JUNIT для автоматического тестирования интеграции? и Передача данных JUnit между тестами и пришли к выводу, что мне не нравятся статические поля в модульном тесте, и я не я не хочу использовать TestNG и добавлять аннотации зависимостей к тестам, и я не хочу помещать свой тест в один длинный нечитаемый метод тестирования.

Я хотел бы узнать больше о синтаксисе, таком как:

public class MyIntegrationTest() {

   @Step
   public void testCreate(Context context) {context.put("foo");}

   @Step
   public void testUpdate(Context context) {context.get();}

   @Step
   public void testDelete(Context context) {context.get()}

}

Итак, я хочу улучшить / использовать модуль таким образом, чтобы он выполнял методы @Step с экземпляром контекста в качестве аргумента. Методы должны вызываться средой по порядку и не могут вызываться по отдельности. В идеальном мире все? Подразделение отображало бы @Step как @Test, но это необязательно ...

Любые советы, как это сделать?

Jan

Ответы [ 2 ]

1 голос
/ 03 мая 2011

Вы также можете рассмотреть http://httpunit.sourceforge.net/. Полезно проверить, возвращаются ли ответы с http-сервера.

Однако, он не выполняет функцию @Step.Обычно я делаю это:

@Test
public void MasterTest() {
  step1(..);
  step2(..);
  ....
}



public void step1(...){...}
   public void step2(...){...}
1 голос
/ 03 мая 2011

Первым делом стоит проверить Maven Failsafe Plugin , который предназначен для проведения интеграционных тестов с Maven. Во-вторых, вы должны назвать свои интеграционные тесты, основываясь на соглашениях, используемых Maven FailSafe Plugin , после этого вы сможете запускать интеграционные тесты просто с помощью maven (с помощью mvn clean verify). Таким образом, это означает, что вы должны назвать свой интеграционный тест как MyIntegrationIT.java ... Чтобы определить порядок выполнения, вы должны использовать иную инфраструктуру, отличную от JUnit, может быть TestNG, которая поддерживает такого рода потребности, но вы уже исключили его. Итак, вопрос в том, какие тесты вы хотели бы сделать? Потоки страниц и т. Д. Могут выглядеть как JWebUnit может стоить выглядеть ...

...