Ошибка Apex: «Ошибка сохранения: метод не существует или неверная подпись» - PullRequest
2 голосов
/ 13 сентября 2011

В настоящее время я изучаю apex (используя IDE Force.com), и у меня возникают некоторые проблемы при написании теста для пользовательского контроллера.

Класс контроллера выглядит следующим образом:

public with sharing class CustomController {
    private List<TestObject__c> objects;

    public CustomController() {
        objects = [SELECT id, name FROM TestObject__c];
    }

    public List<TestObject__c> getObjects() {
        return objects;
    }
}

и класс теста:

@isTest
private class ControllerTest {
    static testMethod void customControllerTest() {
        CustomController controller = new CustomController();

        System.assertNotEquals(controller, null);

        List<TestObject__c> objects;

        objects = controller.getObjects();

        System.assertNotEquals(objects, null);    
    }
}

В строке objects = controller.getObjects(); появляется сообщение об ошибке:

Ошибка сохранения: методне существует или неверная подпись: [CustomController] .getObjects ()

У кого-нибудь есть идея, почему я получаю эту ошибку?

1 Ответ

3 голосов
/ 14 сентября 2011

Хорошая стенография:

public List<TestObject__c> objects {get; private set;}

Он создает геттер / сеттер для вас и выглядит более чистым ИМО. Что касается вашей текущей проблемы, то да - это трудное сохранение кода непосредственно в производство - особенно с тестовыми классами в отдельных файлах.

Лучше всего сделать это в песочнице / dev org, затем развернуть в рабочей среде (развернуть на сервере - Force.com IDE). Но если вам нужно сохранить данные непосредственно в производство, я бы совмещал методы тестирования с вашим классом. Но в конечном итоге, наличие @test поверх выделенного тестового класса - это путь. Таким образом, он не будет расходовать ваши ценные ресурсы.

...