Yes, TestComplete has an evaluate function. In fact, I use it frequently. My code example below is DelphiScript but it should give you an idea of the capability.
Document := Sys.OleObject(XML_DOM_OBJECT);
Document.Load(BaselineDirectory + EVENT_TICKET_HOLD_BASELINE + VarToStr(Self.MessageID) + '.xml');
Log.Message(BaselineDirectory + EVENT_TICKET_HOLD_BASELINE + VarToStr(Self.MessageID) + '.xml loaded.');
//Create object for result
Log.Message('Attempting to create XML node: ' + MESSAGE_EVENT_TICKET_HOLD + VarToStr(Self.MessageID));
XML.CreateXML(MESSAGE_EVENT_TICKET_HOLD + VarToStr(Self.MessageID), Document);
//Compare! Easy peasy.
Comparison := Evaluate('XML.' + MESSAGE_EVENT_TICKET_HOLD + VarToStr(Self.MessageID));
Comparison.Options.IgnoreNodeOrder := True;
Comparison.Compare(Response.DOMObject);
Now, I don't think you can use Evaluate to evaluate a function, only an object. However, if you want do do a function call, you can do something like this.
Result := ODT.Classes.New('eGalaxyMessage');
Result := Runner.CallMethod('ODT' + aMessageType + 'Message.AddObjectSpecificProperties', Result);
Hope this helps!
P.S. Hi, gang! I'm back... been away too long...
Robert Martin
[Hall of Fame]Please consider giving a Kudo if I write good stuff
----
Why automate? I do automated testing because there's only so much a human being can do and remain healthy. Sleep is a requirement. So, while people sleep, automation that I create does what I've described above in order to make sure that nothing gets past the final defense of the testing group.
I love good food, good books, good friends, and good fun.
Mysterious Gremlin Master
Vegas Thrill Rider
Extensions available