Configuration TDD和配置变量

Configuration TDD和配置变量,configuration,tdd,configuration-files,Configuration,Tdd,Configuration Files,我正在学习TDD(Javascript),我想知道,使用配置变量的正确方法是什么?我应该创建一个单独的类,让它们成为该类的成员变量,并将该类的一个实例传递给每个需要它的对象,还是创建一个全局变量列表并使用它们?每种方法的优点/缺点是什么 例如,我必须从URL获取数据,如下所示: function getData (remoteDataDelegate) { remoteDataDelegate.getData(userInfoURL) } 其中,userInfoURL是一个配置变量,我

我正在学习TDD(Javascript),我想知道,使用配置变量的正确方法是什么?我应该创建一个单独的类,让它们成为该类的成员变量,并将该类的一个实例传递给每个需要它的对象,还是创建一个全局变量列表并使用它们?每种方法的优点/缺点是什么

例如,我必须从URL获取数据,如下所示:

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

其中,
userInfoURL
是一个配置变量,我在别处为我的站点上的某个页面的URL设置了它。

全局变量通常由测试用例的设置方法设置。

这是我如何做的一个示例:

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
        });
    },

}

您将注意到配置没有被注入。对我来说,在这个示例代码中,配置从未更改。现在,我的请求对象发生了更改,因此它们被注入,因此我可以模拟这些对象或重定向页面。

您所说的“配置变量”是什么意思?请提供一个(非常简短的)您试图测试的代码类型的示例。当您编辑问题时,请查看页面右侧。请阅读指导老师的格式代码。然后,请根据这些说明格式化您的代码,使其看起来像代码。“配置变量”是指“全局变量”?@S.Lott:这很奇怪,我以为我已经正确格式化了,但我猜出了问题。我又编辑了这个问题。是的,我的意思是“全局变量”。很抱歉给你带来了困惑。