我有一个简单的 wpf 应用程序,它有一个在点击时增加值的按钮。我还有一个返回最新值的函数。默认值为 5。我在 testcomplete 中也有一个 UI 测试,它点击了 3 次按钮(所以 8)。我需要调用 .Net 函数来获取这个值并断言它。下面是我的测试代码。
经过一番搜索,我找出了 CLRbridge 的详细信息并实施了它。但是,正如您在下面看到的,UI 测试实例和我在其上调用函数的实例是不同的。因此,该函数返回 5。
我的问题是,如何从 testcomplete 加载的同一个实例中调用该函数。还是我为此走错了路?我用 if..then 尝试了脚本和 UI 测试,但没有任何效果。我已经尝试过直接实例和调用appdomain,两者似乎都不起作用。
注意: 我明白我可以在 UI 控件中显示值并验证控件。但是,我专门针对我们在项目中需要的更复杂的测试功能进行了尝试。
function Test2()
{
var Increment;
Increment = 0;
//Runs the "TCompTest" tested application.
TestedApps.TCompTest.Run();
//Clicks the 'button1' button.
Aliases.TCompTest.HwndSource_MainWindow.MainWindow.Grid.button1.ClickButton();
//Clicks the 'button1' button.
Aliases.TCompTest.HwndSource_MainWindow.MainWindow.Grid.button1.ClickButton();
//Clicks the 'button1' button.
Aliases.TCompTest.HwndSource_MainWindow.MainWindow.Grid.button1.ClickButton();
//Increment = dotNET.Incrementer.Incr1.zctor().IntValue(true);
Increment = dotNET.Incrementer.Incr1.zctor().IntValue(true);
**OR**
Increment = Sys.Process("TCompTest").AppDomain("TCompTest.exe").dotNET.Incrementer.Incr1.zctor().IntValue(true)
// if(Increment == 8)
// {//Posts an information message to the test log.
Log.Message(Increment);
// }
//Closes the 'HwndSource_MainWindow' window.
Aliases.TCompTest.HwndSource_MainWindow.Close();
}