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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как протестировать вызов аннотированого метода 
:(
    Опции темы
CrasyMen
Дата 12.2.2014, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Retention(RetentionPolicy.RUNTIME)
public @interface RunThisMethod {
    int repeat();
}


Код

public class MyClass {

    public void firstMethod() {
    }

    @RunThisMethod(repeat = 4)
    public void secondMethod() {
        System.out.println("dfgsdgsdgs");
    }

    public void thirdMethod() {
    }
}


Код

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;

public class ObjectFactory {
    public static <T> T createObject(Class<T> aClass) throws IllegalAccessException, InstantiationException, InvocationTargetException {
        T instance = aClass.newInstance();

        for (Method method : aClass.getMethods()) {
            RunThisMethod methodAnnotation = method.getAnnotation(RunThisMethod.class);
            if (methodAnnotation != null) {
                for (int i = 0; i < methodAnnotation.repeat(); i++) {
                    method.invoke(instance);
                }
            }
        }

        return instance;
    }
}


Как протестировать что метод с аннотацией RunThisMethod был вызван repeat раз?

Код

import org.junit.Test;

public class ObjectFactoryTest {

    @Test
    public void annotatedMethodsShouldBeInvoked() throws Exception {
        ObjectFactory.createObject(MyClass.class);
    }
}



--------------------
Человек просто обязан ошибаться, раз другие учатся на его ошибках.
[color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color]
PM MAIL ICQ   Вверх
LSD
Дата 12.2.2014, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


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

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



Цитата(CrasyMen @  12.2.2014,  13:36 Найти цитируемый пост)
Как протестировать что метод с аннотацией RunThisMethod был вызван repeat раз?

Если тестируется класс ObjectFactory, то надо просто создать кастомный класс который будет считать вызовы и проверять счетчик вызовов.
Если тестируется MyClass, то это не его зона ответвенности считать сколько раз его вызвали.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Design, Quality, Testing | Следующая тема »


 




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


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

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