クリックすると値が増加するボタンを持つ単純な wpf アプリがあります。最新の値を返す関数もあります。デフォルト値は 5 です。testcomplete には、ボタンを 3 回 (つまり 8 回) クリックする UI テストもあります。この値を取得してアサートするには、.Net 関数を呼び出す必要があります。以下は私のテストコードです。
いくつかの検索の後、CLRbridge の詳細を把握し、実装しました。ただし、以下に示すように、UI テスト インスタンスと関数を呼び出しているインスタンスは異なります。したがって、関数は 5 を返します。
私の質問は、testcomplete によってロードされた同じインスタンスから関数を呼び出すにはどうすればよいかということです。それとも、私はこれに対して完全に間違った方向に進んでいますか? if..then を使用してスクリプトと UI テストの両方を試しましたが、何も機能しませんでした。直接インスタンスとアプリドメインでの呼び出しの両方を試しましたが、どちらも機能していないようです。
注: 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();
}