如何将测试命令传递到 Smartbear 的 TestComplete 中的 JavaScript 脚本中的函数中?

问题描述 投票:0回答:1

我正在 TestComplete 工作,刚刚了解了脚本作为在 TestComplete 环境中进行更复杂测试步骤的一种方法。因为我的测试可能会在将来使用,所以我的想法之一是制作一个脚本,可以将当前日期与某个文本框进行比较,并查看两者是否相等。这意味着脚本始终具有测试的当前日期,而不是硬编码值。

然后我想:我不应该在一个测试中将其与某个对象联系起来,只使该测试持续相关,我应该使其更通用,这样我就可以将其应用于多个测试,或者应用到测试中的多个位置。相同的测试。为此,我想为我的函数提供一个参数,该参数将接受 TestComplete 对象(名称映射文件由这些对象组成)。我根本不懂 JavaScript,但我知道在 Java 中(与 JavaScript 不同),你必须键入你的参数,而我不知道我的 Type 使用什么。

这是我迄今为止尝试过的:

function DateCheck(dateTextObject) {
  aqObject.CheckProperty(dateTextObject, "text", cmpEqual, aqDateTime.Today());
}

我计划将 dateTextObject 设为我想要传入的长 NameMapped 对象,例如: Aliases.browser.pageLeadMainTestcompletetestDyna.sectionQuickCreateContact.sectionDetails4.textboxDate

但是,当我将其传递到测试中时,它给了我一个错误,告诉我存在类型不匹配。我真的不认为 JavaScript 使用静态类型,而且你不必键入东西(我又刚刚开始学习它),所以这个错误让我感到困惑。

如果您能就这个问题向我提供任何帮助,我将不胜感激。谢谢!

javascript types testcomplete
1个回答
0
投票

@FiddlingAway 在他们的评论中提到的内容对我来说似乎是正确的。您应该首先使用

aqConvert.DateTimeToFormatStr
https://support.smartbear.com/testcomplete/docs/reference/program-objects/aqconvert/datetimetoformatstr.html

将此 dateTime 对象转换为字符串

举个例子:

function DateCheck(dateTextObject) {
  let today = aqConvert.DateTimeToFormatStr(aqDateTime.Today(), "%m/%d/%Y");
  aqObject.CheckProperty(dateTextObject, "Text", cmpEqual, today);
}

尝试以下方法亲自查看:

 let now = aqDateTime.Today()

  Log.Message("Type of dateTextObject: " + typeof(dateTextObject));
  Log.Message("Type of aqDateTime.Today: " + typeof(now));
  Log.Message("Type of today: " + typeof(today));
© www.soinside.com 2019 - 2024. All rights reserved.