Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Junit + Spring / 14 сообщений из 14, страница 1 из 1
17.01.2012, 17:13:18
    #37618559
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
Как правильно тестировать спринг приложения? Часто сталкиваюсь с проблемой когда ресурсы не видны из "test" контекста. Заводить еще один "test" конфиг как-то не кошерно. Как вы тестируете спринговые приложения?
...
Рейтинг: 0 / 0
17.01.2012, 17:20:36
    #37618580
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
Начните с того, что вбейте в гугле "Spring jUnit". Это выдаст вам достаточно информации, что бы понять, как тестировать спринговые приложения.
...
Рейтинг: 0 / 0
17.01.2012, 17:29:41
    #37618605
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
svenom,

если вас не затруднит подкинте ссылку на пример теста, наверно будет понятнее на примере:

В конфиге инициализируется сервис:
...
<sws:xsd location="/WEB-INF/fundList.xsd"/>
...

Если инициализировать контекст спринга из папки "test" то он отругается на то что такой папки нет.
Как быть в такой ситуации?
...
Рейтинг: 0 / 0
17.01.2012, 17:40:18
    #37618632
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
Ну раз вы ленитесь, вот вам ссылка - http://static.springsource.org/spring/docs/2.5.x/reference/testing.html
Там все объяснено. Никакие дополнительные контексты не нужны.
...
Рейтинг: 0 / 0
17.01.2012, 17:45:30
    #37618644
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
svenom,

Я в общем от туда и пришел с вопросом... ладно, посмотрю еще раз...
...
Рейтинг: 0 / 0
17.01.2012, 18:01:54
    #37618689
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
svenomТам все объяснено. Никакие дополнительные контексты не нужны.
Где там?

Еще раз о моей ситуации. Если скопировать папку WEB-INF в папку test/resources спринговый контекст нормально создается и тест запускается.
Как при инициализации спринг контекста из JUnit теста указать что пути в конфиге относительно папки main/java а не test/java?
...
Рейтинг: 0 / 0
17.01.2012, 18:10:56
    #37618714
svenom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
Ну смотрите, main и test лежат в одной директории. Следвательно, вам надо подняться на один уровень вверх, а потом провалиться в main:
<sws:xsd location="../main/WEB-INF/fundList.xsd"/>
...
Рейтинг: 0 / 0
17.01.2012, 18:12:00
    #37618719
nesquick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
ТимоН,

Можно определить свой загрузчик контекста:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.test.context.ContextLoader;

public class CustomContextLoader implements ContextLoader{
    @Override
    public String[] processLocations(Class<?> type, String... strings) {

        return strings;
    }

    @Override
    public ApplicationContext loadContext(String... strings) throws Exception {
        return new FileSystemXmlApplicationContext(strings);
    }
    
}



И использовать вот так:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"WebContent/WEB-INF/context1.xml", 
    "WebContent/WEB-INF/context1.xml"}, loader=CustomContextLoader.class)
public class InitialFrameTest {
    
    @Test
    public void test() {

    }
}
...
Рейтинг: 0 / 0
17.01.2012, 18:19:32
    #37618740
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
svenomНу смотрите, main и test лежат в одной директории. Следвательно, вам надо подняться на один уровень вверх, а потом провалиться в main:
<sws:xsd location="../main/WEB-INF/fundList.xsd"/>
Я про это и писал в самом начале, таким образом у нас должен быть один конфиг для тестов с указанным вами путем и "боевой" для разворачивания на апп сервере.
...
Рейтинг: 0 / 0
17.01.2012, 18:46:34
    #37618774
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
а где-то внутрях папки resources или src никак нельзя этот xsd положить (тогда должен быть виден). обязательно в WEB-INF?
...
Рейтинг: 0 / 0
17.01.2012, 18:55:27
    #37618784
забыл ник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
Можно даже мавеном это делать при сборке
...
Рейтинг: 0 / 0
17.01.2012, 19:27:21
    #37618827
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
забыл никМожно даже мавеном это делать при сборке
это было бы моим вторым предложением, но imho первый вариант предпочтительней
...
Рейтинг: 0 / 0
18.01.2012, 11:35:29
    #37619551
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
chpashaа где-то внутрях папки resources или src никак нельзя этот xsd положить (тогда должен быть виден). обязательно в WEB-INF?
А какая разница? В таком случае он должен лежать и в папке test/resources.
...
Рейтинг: 0 / 0
18.01.2012, 13:31:14
    #37619863
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Junit + Spring
ТимоНА какая разница? В таком случае он должен лежать и в папке test/resources.
нет. и разница есть, ресурсы из папки main/resources и main/java видны в тест
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Junit + Spring / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]