Spring: модульные и интеграционные тесты

Я ищу лучшие практики для настройки модульных и интеграционных тестов с использованием Spring.

Я обычно использую 3 вида тестов:

  • » реальные »модульные тесты (без зависимостей)
  • тесты выполняются либо как« модульные »тесты (БД в памяти, локальные вызовы, фиктивные объекты, ...) или как интеграционный тест (постоянная база данных, удаленные вызовы, ...)
  • тесты выполняются только как интеграционные тесты

В настоящее время у меня есть тесты только второй категории, что является сложной частью. Я установил базовый тестовый класс, например:

@ContextConfiguration(locations = { "/my_spring_test.xml" })
public abstract class AbstractMyTestCase extends AbstractJUnit4SpringContextTests

, и «модульные» тесты, например:

public class FooTest extends AbstractMyTestCase

с атрибутами с автоматическим подключением.

Как лучше всего запустить тест в другой (интеграционной) среде? Создать подкласс теста и переопределить ContextConfiguration?

@ContextConfiguration(locations = { "/my_spring_integration_test.xml" })
public class FooIntegrationTest extends FooTest

Будет ли это работать (сейчас я не могу легко проверить это здесь)? Проблема с этим подходом заключается в том, что "@ContextConfiguration (location = {" /my_spring_integration_test.xml "})" много дублируется.

Есть предложения?

С уважением, Florian

8
задан Sean Patrick Floyd 4 January 2011 в 14:43
поделиться