TDD和配置变量

时间:2010-07-01 01:09:59

标签: configuration tdd configuration-files

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

例如,我必须按如下方式从URL获取数据:

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

其中userInfoURL是我在其他地方为我网站上的网页设置的配置变量。

2 个答案:

答案 0 :(得分:0)

全局变量通常由TestCase的setUp方法设置。

答案 1 :(得分:0)

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

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

}

您会注意到没有注入配置。对我来说,在这个示例代码中,配置永远不会改变。现在我的请求对象发生了变化,因此它们被注入,所以我可以嘲笑它们或重定向页面。