Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Jmock для тестирования Servlets 
V
    Опции темы
FcUK
Дата 17.4.2007, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.2.2007

Репутация: 1
Всего: 1



Привет.
Что то не могу разобратса как написать коректные тесты для Сервлетов используя Jmock

Вот допустим есть обычний клас который изменяет локаль


Код

public final class ChangeLocale extends Action {

    public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response)
            throws Exception {

        String language = request.getParameter("language");
        String country = request.getParameter("country");
        if (null == country) {
            setLocale(request, new Locale(language));
        } else {
            setLocale(request, new Locale(language, country));
        }
        return new ActionForward(mapping.findForward("success"));
    }
}


как для него написать тест используя Jmock?

я написал вот такой...но он падает - возникает java.lang.NullPointerException в строке - "return new ActionForward(mapping.findForward("success"));"

Код

public class ChangeLocaleTest extends MockObjectTestCase {

    public void testConstructor() throws Throwable {
        ChangeLocale changeLocale = new ChangeLocale();
        ActionMapping mapping = new ActionMapping();
        ActionForm form = new UserProfileForm();
        final HttpServletRequest request = mock(HttpServletRequest.class);
        HttpServletResponse response = mock(HttpServletResponse.class);

        checking(new Expectations() {
            {
                one(request).getParameter("language");
                one(request).getParameter("country");
                allowing(request).getSession();
            }
        });

        ActionForward result = changeLocale.execute(mapping, form, request,response);
        assertNotNull(result);
    }
}


понимаю что возможно он в корне не правильний потому прошу хорошый пример теста для ChangeLocale используя Jmock


Это сообщение отредактировал(а) FcUK - 17.4.2007, 10:58
PM MAIL   Вверх
FcUK
Дата 17.4.2007, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 22.2.2007

Репутация: 1
Всего: 1



вроди сам разобралса....получился вот такой рабочий тест

Код

public class ChangeLocaleTest extends MockObjectTestCase {

    public void testConstructor() throws Throwable {
        ChangeLocale changeLocale = new ChangeLocale();

        
        ActionForm form = new UserProfileForm();

        final HttpServletRequest request = mock(HttpServletRequest.class);
        HttpServletResponse response = mock(HttpServletResponse.class);

        checking(new Expectations() {
            {
                one(request).getParameter("language");
                will(returnValue("ukr"));
                one(request).getParameter("country");
                will(returnValue("ukr"));
                allowing(request).getSession();
            }
        });

        ActionForward result = changeLocale.execute(createActionMappingWithForward(), form, request,response);
        
        assertNotNull(result);
        assertEquals(result.getPath(), "success");
    }

    private ActionMapping createActionMappingWithForward() {
        ActionMapping mapping = new ActionMapping() {
            public ActionForward findForward(String name) {
                return new ActionForward(name);
            }
        };
        return mapping;
    }

}

PM MAIL   Вверх
AntonSaburov
Дата 17.4.2007, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 8
Всего: 118



Молодец - держи плюса за то, что поделился
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java tools & IDE's | Следующая тема »


 




[ Время генерации скрипта: 0.0722 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.