TDD и переменные конфигурации - PullRequest
0 голосов
/ 01 июля 2010

Я изучаю TDD (в Javascript), и я хотел знать, как правильно использовать переменные конфигурации?Должен ли я создать отдельный класс и сделать его переменными-членами класса и передать экземпляр класса каждому объекту, который в этом нуждается, или составить список глобальных переменных и просто использовать их?Каковы преимущества / недостатки каждого метода?

Например, мне нужно получить данные из URL-адреса следующим образом:

function getData (remoteDataDelegate) {
    remoteDataDelegate.getData(userInfoURL)
}

, где userInfoURL - это переменная конфигурации, которую я установилв другом месте по URL для страницы на моем сайте.

Ответы [ 2 ]

0 голосов
/ 01 июля 2010

Это пример того, как я это делаю:

function NewConfiguration() {
    var config = {};
    config.carriersSelector = NewCarriersSelector();
    config.paymentMethodsSelector = NewPaymentMethodsSelector();

    return config;
}

Использование:

function NewOrderModel(request, searchRequest) {
    var configuration = NewConfiguration();
    // ... other variables code
var that = {
    getContentSuccess: function(cb) {
        // .. setup code

        $.ajax({
            type:       'GET',
            url:        request.page,
            dataType:   'json',
            data:       request.data,
            async:      request.async,
            success:    function(data) {
                if (data.status === 'success') {
                    cb(data.html, activeCustomer, step, configuration);
                }
                if (data.status == 'flash') {
                    flash(data.flash);
                }
            },
            complete:   request.complete
        });
    },

}

Вы заметите, что конфигурация не вводится.для меня в этом примере кода конфигурация никогда не меняется.Теперь мои объекты запроса изменяются, поэтому они вводятся, поэтому я могу их макетировать или перенаправлять на страницы.

0 голосов
/ 01 июля 2010

Глобальные переменные обычно устанавливаются методом setUp вашего TestCase.

...