gpt4 book ai didi

functional-testing - QTP 中的关联库无法正常工作

转载 作者:行者123 更新时间:2023-12-01 10:58:29 24 4
gpt4 key购买 nike

我是 QTP 的新手,刚开始使用它。我在一些功能库中编写了一个类定义,还创建了一个测试,如下所示:

Class ExcelFileReader
Public default Function Init(pathToExcel)
Dim objFSO
Dim result
Set objFSO = CreateObject("Scripting.FileSystemObject")

If objFSO.FileExists(pathToExcel) Then
Rem File Found
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
objExcel.Workbooks.open(pathToExcel)

Else
REM File not found
result = vbOk
While result <> vbCancel
result = Msgbox ("Unable to Locate the file", 5, "Error")
Wend
ExitAction(1)
End If
End Function

下课

测试:

 Dim objExcelReader : Set objExcelReader = New ExcelFileReader
objExcelReader.Init("D:\mytest.xlsx")

我已将功能库与测试相关联,但我仍然在测试中的第 2 行收到错误,指出未找到类定义。此外,如果我将完整代码复制到同一文件“测试”中,那么一切都会按预期工作。

提前致谢:)

最佳答案

类在您的库中具有本地作用域。您必须使用公共(public)函数构建它们以使其公开可用:

Public Function new_ExcelFileReader()
Set new_ExcelFileReader = new ExcelFileReader
End Function

Class ExcelFileReader
Sub Class_Initialize
MsgBox "Present!"
End Sub
End Class

在您的其他图书馆中:

Dim objExcelReader : Set objExcelReader = New_ExcelFileReader
objExcelReader.Init("D:\mytest.xlsx")

提示:您可以将初始化参数传递给构造函数。

编辑

根据要求:如何传递构造函数参数。只需将它们添加到您的构造函数中:

Public Function new_ExcelFileReader2(filepath, sheetname)
Set new_ExcelFileReader2 = new ExcelFileReader
new_ExcelFileReader2.Init(filepath, sheetname)
End Function

' And the call:
Set myExcelFileReader = new_ExcelFileReader2("C:\temp\tempExcel.xlsx", "sheet1")

在我的实现中,有时我有相同的对象,但它会被多个构造函数“配置”。在您的情况下,您可以有一个 new_ExcelFileReader、一个 new_CSVFileReader 和一个 new_TabDelimitedReader 都指向同一个对象但配置不同。

另一种设计代码的方法是通过 init 函数返回对象(使用 me 关键字)。这将产生如下代码:

Class ExcelFileReader

private filepath_
public function Init(filepath)
filepath_ = filepath
Set Init = me
end function

End Class

Set myExcelFileReader = new ExcelFileReader.Init("C:\temp\tmpExcel.xlsx")

通过构造函数,您可以通过返回对象然后调用 Init 函数来使用它。

Public Function new_ExcelFileReader()   ' this is the same as the first function
Set new_ExcelFileReader = new ExcelFileReader
End Function

Set myExcelFileReader = new_ExcelFileReader.Init("C:\temp\tmpExcel.xlsx")

关于functional-testing - QTP 中的关联库无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13191229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com