我用Javascript为一个web应用程序编写了一个前端自动化测试,其中您使用电子邮件地址创建一个新用户,用户登录,注销,然后使用您最初创建的相同电子邮件地址详细信息登录回系统。
我在Javascript中有以下函数。当我在同一个类中调用这个函数时,它返回以下电子邮件字符串"email1615148555@example.com"。当这个函数在另一个类中再次被调用时,"ts"部分会因为时间的变化而改变。
我如何编码它,以便我可以在同一测试的另一个类中第二次使用相同的返回电子邮件地址?
请注意,每次测试本身运行时都会生成一个唯一的电子邮件地址。
func() {
var ts = Math.round((new Date()).getTime() / 1000);
var consumerEmail = config.email + ts + "@example.com";
return consumerEmail.toString();
}
您可以将逻辑拆分为两个独立的函数,并在多个调用中重用时间戳。
const timestamp = () => Math.round(new Date()).getTime() / 1000);
function test(timestamp) {
return config.email + timestamp + "@example.com";
}
const ts = timestamp()
test(ts)
test(ts)
实现记忆概念以达到预期结果
https://www.freecodecamp.org/news/understanding-memoize-in-javascript-51d07d19430e/
您可以为它创建一个单例服务,并做如下操作:
var consumerEmail = new (function () {
var consumerEmail = "";
this.get = function() {
if (!consumerEmail){
var ts = Math.round((new Date()).getTime() / 1000);
consumerEmail = config.email + ts + "@example.com";
}
return consumerEmail.toString();
}
})();
然后命名为:
getConsumerEmail.get();