Additional Tips For Working With User Defined Functions
Additional Tips For Working With User Defined Functions
When working with user-defined functions, consider the following tips and guidelines:
For an in-depth view of the required syntax, you can define a function using the
Function Definition Generator and experiment with the various options.
When you register a function, it applies to an entire test object class. You cannot
register a method for a specific test object.
If you want to call a function from additional test objects, you can copy the
RegisterUserFunc line, paste it immediately after another function and replace
any relevant argument values.
If the function you are registering is defined in a function library, it is
recommended to include the RegisterUserFunc statement in the function library
as well so that the method will be immediately available for use in any test using
that function library.
QuickTest clears all method registrations at the beginning of each run session.
If you use a partial run or debug option, such as Run from step or Debug from
step, to begin running a test from a point after method registration was performed
in a test step (and not in a function library), QuickTest does not recognize the
method registration because it occurred prior to the beginning of the current run
session.
To use an Option Explicit statement in a function library associated with your
test, you must include it in all the function libraries associated with the test. If you
include an Option Explicit statement in only some of the associated function
libraries, QuickTest ignores all the Option Explicit statements in all function
libraries. You can use Option Explicit statements directly in your action scripts
without any restrictions.
Each function library must have unique variables in its global scope. If you have
two associated function libraries that define the same variable in the global scope
using a Dim statement or define two constants with the same name, the second
definition causes a syntax error. If you need to use more than one variable with
the same name in the global scope, include a Dim statement only in the last
function library (since function libraries are loaded in the reverse order).
By default, steps that use user-defined functions are not displayed in the test
results tree of the Test Results window after a run session. If you want the
function to appear in the test results tree, you must add a Reporter.ReportEvent
statement to the function code. For example, you may want to provide additional
information or to modify the test status, if required.
If you delete a function in use from an associated function library, the test step
using the function will display the icon. In subsequent run sessions for
the test, an error will occur when the step using the non-existent function is
reached.
If another user modifies a function library that is referenced by a test, or if you
modify the function library using an external editor (not QuickTest), the changes
will take effect only after the test is reopened.
When more than one function with the same name exists in the test script or
function library, the last function will always be called. (QuickTest searches the
test script for the function prior to searching the function libraries.) To avoid
confusion, make sure that you verify that within the resources associated with a
test, each function has a unique name.
If you register a method within a reusable action, it is strongly recommended to
unregister the method at the end of the action (and then re-register it at the
beginning of the next action if necessary), so that tests calling your action will not
be affected by the method registration.
You can re-register the same method to use different user-defined functions
without first unregistering the method. However, when you do unregister the
method, it resets to its original QuickTest functionality (or is cleared completely if
it was a new method), and not to the previous registration.
After running the UnRegisterUserFunc statement, the Click method stops using
the functionality defined in the MyClick2 function, and returns to the original
QuickTest Click functionality, and not to the functionality defined in the
MyClick function.
For more information on creating functions and subroutines using VBScript, you
can view the VBScript documentation from the QuickTest Help menu (Help >
QuickTest Professional Help > VBScript Reference).