例: 単純な ProxyObject の作成

この例では、単純な ProxyObject を作成する方法を説明します。
このタスクについて
ProxyObject クラスを作成、ビルド、およびデプロイするには、以下のようにします。
  1. 次の方式のいずれかを使い、ProxyObject クラスを作成します。
    • Functional Tester Java ドメイン・プロキシー com.rational.test.ft.domain.java.jfc.JTextProxy から拡張された Java™ で JFormattedTextFieldProxy ProxyObject を作成します。 例えば、以下のコードを入力して JFormattedTextFieldProxy.java を作成します。
      package proxysdk.samples.java;
      
      import com.rational.test.ft.domain.java.jfc.JTextProxy;
      
      /**
       * @author administrator
       *
       * TODO To change the template for this generated type comment go to
       * Window - Preferences - Java - Code Generation - Code and Comments
       */
      public class JFormattedTextFieldProxy extends JTextProxy
      {
      	/**
      	 * Sets the SUT object
      	 * as a member variable for the proxy.  All interactions with the
      	 * supplied object are performed through this class. 
      	 */
      	public JFormattedTextFieldProxy(Object theObjectInTheSUT)
      	{
      		super(theObjectInTheSUT) ;
      	}
           
                /* 
                 *  TODO:  Override more ProxyObject Methods here
                 */
      }
    • Functional Tester .Net ドメイン・プロキシー Rational.Test.Ft.Domain.Net.TextBoxProxy から拡張された C# で MaskedTextProxy ProxyObject を作成します。 例えば、以下のコードを入力して MaskedTextProxy.cs を作成します。
      using Rational.Test.Ft.Domain;
      using Rational.Test.Ft.Domain.Net;
      
      namespace ProxySDK.Samples.Net
      {
      	/// <summary>
      	/// Summary description for MaskedTextProxy.
      	/// </summary>
      	public class MaskedTextProxy:TextBoxProxy
      	{
      		public MaskedTextProxy(NetTestDomainImplementation domain,
      			IChannel channel,
      			System.Object theTestObject): base( domain, channel, theTestObject)
      		{
      		}
      		//
      		// TODO: Override more ProxyObject Methods here
      		//
      	}
      }
    • Functional Tester Win ドメイン・プロキシー Rational.Test.Ft.Domain.Win.GenericProxy から拡張された C# で StatusBarProxy ProxyObject を作成します。 例えば、以下のコードを入力して StatusBarProxy.cs を作成します。
      using Rational.Test.Ft.Domain;
      using Rational.Test.Ft.Domain.Win;
      
      namespace ProxySDK.Samples.Win
      {
      	/// <summary>
      	/// Summary description for StatusBarProxy.
      	/// </summary>
      	public class StatusBarProxy:GenericProxy
      	{
      		public StatusBarProxy(WinTestDomainImplementation domain,
      			IChannel channel,
      			IWinControl theAUTControl): base( domain, channel, theAUTControl)
      		{
      			//
      			// TODO: Add constructor logic here
      			//
      		}
      	}
      }
  2. ビルド・コマンドを使用して ProxyObject バイナリー・ファイルをビルドします。
    • Java の場合、コンパイル・バイナリー出力は JAR ファイル (例えば JFormattedTextFieldProxy.jar) です。
    • .Net の場合、コンパイル・バイナリー出力は .Net アセンブリー (例えば MaskedTextProxy.dll または StatusBarProxy.dll) です。
  3. 次の方式のいずれかを使い、Functional Tester カスタマイズ・ファイル (.rftcust ファイル) の AUT コントロール・クラスに ProxyObject クラスをマップします。
    • Java ドメインの下のマッピング項目を指定し、javax.swing.JFormattedTextField コントロールに対して proxysdk.samples.java.JFormattedTextFieldProxy ProxyObject を使用するようにします。 例えば、以下のコードを入力して JFormattedTextFieldProxy.rftcust を作成します。
      <?xml version="1.0" encoding="UTF-8"?>
      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      			<DomainImplementation L=".DomainImplementation">
      				<Name>Java</Name>
      				<Obj L=".Proxy">
      					<ClassName>proxysdk.samples.java.JFormattedTextFieldProxy</ClassName>
      					<Replaces/>	
      					<UsedBy>javax.swing.JFormattedTextField</UsedBy>
      				</Obj>				
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>

      このマッピングを使用して、Functional Tester は見つかったすべての JFormattedTextField Java UI コントロールに対して JFormattedTextFieldProxy インスタンスを作成します。

    • .Net ドメインの下のマッピング項目を指定し、[System.Windows.Forms] .Net アセンブリーで実装された System.Windows.Forms.MaskedTextBox .Net コントロールに対して ProxySDK.Samples.Net.MaskedTextProxy ProxyObject を使用するようにします。 例えば、以下のコードを入力して MaskedTextProxy.rftcust を作成します。
      <?xml version="1.0" encoding="UTF-8"?>
      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      			<DomainImplementation L=".DomainImplementation">
      				<Name>NET</Name>
      				<Obj L=".Proxy">
      					<ClassName>[MaskedTextBoxProxy]ProxySDK.Samples.Net.MaskedTextProxy </ClassName>
      					<Replaces/>	
      					<UsedBy>[System.Windows.Forms]System.Windows.Forms.MaskedTextBox</UsedBy>
      				</Obj>				
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>
      注: .Net コントロール・クラス名を指定するときは、アセンブリー名を [] で囲みます。
    • Win ドメインの下のマッピング項目を指定し、StatusBar20WndClass Win コントロールに対して [StatusBarProxy]ProxySDK.Samples.Win.StatusBarProxy ProxyObejct を使用するようにします。 例えば、以下のコードを入力して StatusBarProxy.rftcust を作成します。
      <?xml version="1.0" encoding="UTF-8"?>
      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      			<DomainImplementation L=".DomainImplementation">
      				<Name>Win</Name>
      				<Obj L=".Proxy">
      					<ClassName>[StatusBarProxy]ProxySDK.Samples.Win.StatusBarProxy</ClassName>
      					<Replaces/>
      					<UsedBy>STATUSBAR20WNDCLASS</UsedBy>
      				</Obj>				
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>
    • combined カスタマイズ・ファイルのすべての ProxyObject のマッピング項目を指定します。
      注: プロキシーのマッピングをそれぞれの <DomainImplementation L=".DomainImplementation"> セクションに指定する必要があります。

      例えば、以下のコードを入力して combined.rftcust を作成します。

      <ConfigFile L=".ConfigFile">
      	<Section L=".ConfigFileSection">
      		<Name>proxies</Name>
      		<Val L=".ProxyManager">
      
                                 <!--  Add DomainImplementation section for each domain --> 
      
                                 <DomainImplementation L=".DomainImplementation">
      				<Name>Java</Name>
      				<Obj L=".Proxy">
      					<ClassName>proxysdk.samples.java.JFormattedTextFieldProxy</ClassName>
      					<Replaces/>	
      					<UsedBy>javax.swing.JFormattedTextField</UsedBy>
      				</Obj>	
                                           <!--  Add <Obj L=".Proxy"> section here for each Java proxy mapping  --> 
       			
      			</DomainImplementation>
      
                                 <DomainImplementation L=".DomainImplementation">
      				<Name>NET</Name>
      				<Obj L=".Proxy">
      					<ClassName>[MaskedTextBoxProxy]ProxySDK.Samples.Net.MaskedTextProxy </ClassName>
      					<Replaces/>	
      					<UsedBy>[System.Windows.Forms]System.Windows.Forms.MaskedTextBox</UsedBy>
      				</Obj>		
                                           <!--  Add <Obj L=".Proxy"> section here for each .NET proxy mapping  --> 
      		
      			</DomainImplementation>
      
      			<DomainImplementation L=".DomainImplementation">
      				<Name>Win</Name>
      				<Obj L=".Proxy">
      					<ClassName>[StatusBarProxy]ProxySDK.Samples.Win.StatusBarProxy</ClassName>
      					<Replaces/>
      					<UsedBy>STATUSBAR20WNDCLASS</UsedBy>
      				</Obj>	
                                          <!--  Add <Obj L=".Proxy"> section here for each Win proxy mapping  --> 
      			
      			</DomainImplementation>
      		</Val>
      	</Section>
      </ConfigFile>

      構文または使用法の説明については、C:¥Program Files¥IBM¥SDP70¥FunctionalTester¥bin にあるカスタマイズ・ファイル rational_ft.rftcust を参照してください。 このファイルには、Functional Tester とともに提供されるすべての ProxyObject のマッピング項目が含まれています。

  4. プロキシー・バイナリー・ファイル (例えば JFormattedTextFieldProxy.jar、 MaskedTextProxy.dll、StatusBarProxy.dll など) とそれに対応するカスタマイズ・ファイルを Functional Tester カスタマイズ・ディレクトリー C:¥Documents and Settings¥All Users¥Application Data¥IBM¥RFT¥customization にコピーすることによってデプロイします。
  5. Functional Tester を再始動します。

フィードバック