Configuration TDD和配置变量
我正在学习TDD(Javascript),我想知道,使用配置变量的正确方法是什么?我应该创建一个单独的类,让它们成为该类的成员变量,并将该类的一个实例传递给每个需要它的对象,还是创建一个全局变量列表并使用它们?每种方法的优点/缺点是什么 例如,我必须从URL获取数据,如下所示:Configuration TDD和配置变量,configuration,tdd,configuration-files,Configuration,Tdd,Configuration Files,我正在学习TDD(Javascript),我想知道,使用配置变量的正确方法是什么?我应该创建一个单独的类,让它们成为该类的成员变量,并将该类的一个实例传递给每个需要它的对象,还是创建一个全局变量列表并使用它们?每种方法的优点/缺点是什么 例如,我必须从URL获取数据,如下所示: function getData (remoteDataDelegate) { remoteDataDelegate.getData(userInfoURL) } 其中,userInfoURL是一个配置变量,我
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:这很奇怪,我以为我已经正确格式化了,但我猜出了问题。我又编辑了这个问题。是的,我的意思是“全局变量”。很抱歉给你带来了困惑。