我想让Cypress测试套件的一部分基于一个配置变量运行一组函数。 即。 如果版本变量为1,则应使用函数showMessage的版本1,如果版本变量为2,则应使用版本2。 我可以使用if语句来实现,如下所示。 我是一个JavaScript noob,但我知道还有更优雅的方法来实现它。
function showMessage(version) {
if (version == '1') {
console.log('Version 1');
}
else {
console.log('Version 2')
}
}
showMessage('2');
理想情况下,我希望将这些函数放在单独的文件夹中,每个文件夹定义自己的showMessage版本(没有if语句),但我不确定如何在JavaScript中正确地执行。
在某种程度上,我要求一种极其轻量级的依赖注入机制。
有很多很多方法可以做到这一点。 它基本上是一个决定什么是较少的工作和最具可读性。 但到最后,你永远没有办法选择你想要的东西。 在每个函数中,if的不同方法是:
null
var a = {};
var b = {};
a.showMessage = () => { console.log('Version 1'); }
b.showMessage = () => { console.log('Version 2'); }
//now decide which object to use... via switch or if or whatever
a.showMessage();
b.showMessage();