весеннее тестирование - PullRequest
8 голосов
/ 01 июля 2011

У меня есть проект maven spring (последняя версия), и я хочу написать несколько тестов junit (последняя версия).

Проблема, с которой я столкнулся, заключается в том, что мои пружинные бобы имеют автоматическую связь, и когда я вызываю ихВ тесте junit я получаю исключения с нулевым указателем, так как Spring не выполняет их автоматическое связывание.

Как загрузить контекст, чтобы все связывалось автоматически?

Ответы [ 3 ]

21 голосов
/ 01 июля 2011

Вы изучали Тестирование главу в справочной документации Spring? Вот пример, с которого вы должны начать:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {

    @Resource
    private FooService fooService;

    // class body...
}

Если вы находитесь в com.example.MyTest в /src/test/java, вам понадобится /src/test/resources/com/example/MyTest-context.xml - но исключения покажут вам путь.

12 голосов
/ 01 июля 2011

Это возможность:

@RunWith(SpringJUnit4ClassRunner.class)
// ApplicationContext will be loaded from "/applicationContext.xml"
// in the root of the classpath
@ContextConfiguration({"/applicationContext.xml"})
public class MyTest {
// class body...
}

Обычно неплохо иметь test-applicationContext для вашей тестовой инфраструктуры.

5 голосов
/ 01 июля 2011

Вы должны использовать SpringJUnit4ClassRunner в ваших тестовых классах и использовать @Resource (или @Autowired) в поле вашего тестового класса, содержащего бин. Вам следует подумать о том, чтобы иметь специальную конфигурацию тестового контекста Spring, в которой используются заглушки, чтобы ваши тесты были подлинными модульными тестами и не полагались на весь контекст приложения.

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