Как я могу проверить метод get в моем контроллере - PullRequest
0 голосов
/ 02 марта 2012

У меня есть свойство в контроллере, которое я хотел бы проверить:

public List<SelectOption> exampleProperty {
    get {
        //Do something;
    }
}

Я не уверен, как охватить этот код в моем тестовом классе. Есть идеи?

Ответы [ 3 ]

3 голосов
/ 02 марта 2012

Есть прямой путь, просто вызовите свойство из метода test

List<SelectOption> temp = obj.method;
1 голос
/ 02 марта 2012

Возможно, вам придется напрямую протестировать свои свойства, особенно если вы используете отложенную инициализацию - умный шаблон для повышения эффективности и читаемости кода.

Вот список примеров этого шаблона:

Integer[] lotteryNumbers {
    get {
        if (lotteryNumbers == null) {
            lotteryNumbers = new Integer[]{};
        }
        return lotteryNumbers;
    }
    set;
}

Если вы хотите получить полное покрытие паттерна (что может быть хорошей идеей, пока вы к нему привыкаете), вам нужно будет сделать что-то вроде следующего:

static testMethod void lotteryNumberFactoryText() {
    // test the null case
    System.assert(lotteryNumbers.size() == 0);

    Integer[] luckyNumbers = new Integer[]{33,8};
    lotteryNumbers.addAll(luckyNumbers);

    // test the not null case
    System.assert(lotteryNumbers == luckyNumbers);
}
0 голосов
/ 02 марта 2012

Во-первых, вы действительно хотите иметь атрибут с именем "method"?Кажется чертовски запутанным.В любом случае, чтобы покрыть код, просто позвоните

someObject.get(method);

Но покрытие кода должно быть побочным эффектом написания хороших тестов, а не целью.Вы должны подумать о том, что должен делать код, и написать тесты, чтобы проверить (т.е. утверждать), что он работает.

...