예제: 새 TestObject 추가

이 예제에서는 TestObject를 추가하는 방법에 대해 설명합니다.
TestObject를 작성, 빌드 및 배치하려면 다음을 수행하십시오.
  1. TestObject의 생성자를 작성하십시오.

    다음 예제 코드에서는 Java™ TestObject를 보여줍니다.

    package sdk.sample;
    
    import com.rational.test.ft.object.interfaces.*; 
    import com.rational.test.ft.object.TestObjectReference;
    import com.rational.test.ft.object.map.SpyMappedTestObject;
    
    public class ExtendedGuiTestObject extends GuiTestObject{
    
    	// FIVE Standard Contructors,  has to be defined in every new TestObject
    
    	public ExtendedGuiTestObject(SpyMappedTestObject mappedObject)
    	{
    		super(mappedObject);
    	}
    	
    	public ExtendedGuiTestObject(SpyMappedTestObject mappedObject, TestObject anchor)
    	{
    		super(mappedObject, anchor);
    	}
    	
    	public ExtendedGuiTestObject(SpyMappedTestObject mappedObject, 
    									TestObject anchor,
    									long scriptCommandFlags)
    	{
    		super(mappedObject, anchor, scriptCommandFlags);
    	}
    	
    	public ExtendedGuiTestObject(TestObjectReference ref) 
    	{
    		super(ref);
    	}
    
    	public ExtendedGuiTestObject(TestObject obj) 
    	{
    		super(obj);
    	}
    
         
           // Newly added Method for this TestObejct,  just a call forwarder using invokeProxy API
    	
    	public void performClick()
    	{
    		invokeProxy("performClick");
    	}
    }

    다음 예제 코드에서는 .Net TestObject를 보여줍니다.

    using TestObjectReference = Rational.Test.Ft.Object.TestObjectReference;
    using Rational.Test.Ft.Object.Interfaces;
    using Rational.Test.Ft.Object.Manager;
    using Rational.Test.Ft.Object.Map;
    
    namespace SDK.Sample
    {
    
    	public class ExtendedGuiTestObject:GuiTestObject
    	{
    		// FIVE Standard Contructors,  has to be defined in every new TestObject
    		public ExtendedGuiTestObject(SpyMappedTestObject mappedObject):base (mappedObject) {
    		}
    
    		public ExtendedGuiTestObject(SpyMappedTestObject mappedObject, TestObject anchor)
    			:base (mappedObject, anchor){
    		}
    
    		public ExtendedGuiTestObject(SpyMappedTestObject mappedObject, TestObject anchor, 
    			long scriptCommandFlags):base (mappedObject, anchor, scriptCommandFlags) {
    		}
    
    		public ExtendedGuiTestObject(TestObjectReference ref_Renamed):base (ref_Renamed) {
    		}
    
    		public ExtendedGuiTestObject(TestObject obj):base (obj) {
    		}
    
    		// Newly added Method for this TestObejct,  just a call forwarder using InvokeProxy API
    
    		public virtual void PerformClick()	{
    			InvokeProxy("performClick");
    		}
    	}
    }
  2. 사용자 정의 파일에서 TestObject에 사용할 새 정식 이름을 정의하십시오.

    다음 예제에서는 TestObject에 사용할 새 정식 이름을 정의할 수 있는 방법을 보여줍니다.

    <?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>[NETProxyExtension]SDK.Sample.TestButtonProxy</ClassName>
    					<Replaces/>
    					<UsedBy>Rational.Controls.CustomButton</UsedBy>
    				</Obj>
    			</DomainImplementation>
    		</Val>
    	</Section>
    	<Section L=".ConfigFileSection">
    		<Name>testObjects</Name>
    		<Val L=".TestObjectManager">
    			<ComponentModel L=".ComponentModel">
    				<Name>Java</Name>
    			</ComponentModel>
    			<ComponentModel L=".ComponentModel">
    				<Name>Net</Name>
    				<Obj L=".TestObject">
    					<CanonicalName>ExtendedGuiTestObject</CanonicalName>
    					<TestObject>[NETProxyExtension]SDK.Sample.ExtendedGuiTestObject</TestObject>
    				</Obj>
    			</ComponentModel>
                            <ComponentModel L=".ComponentModel">
    				<Name>Java</Name>
    				<Obj L=".TestObject">
    					<CanonicalName>ExtendedGuiTestObject</CanonicalName>
    					<TestObject>sdk.sample.ExtendedGuiTestObject</TestObject>
    				</Obj>
    			</ComponentModel>
    		</Val>
    	</Section>
    </ConfigFile>
  3. 프록시를 새로 작성한 TestObject에 맵핑하십시오.

    다음 예제에서는 getTestObjectClassName() 메소드를 대체하는 Java 프록시 소스를 보여줍니다.

    import com.rational.test.ft.domain.*;
    .
    .
    public String getTestObjectClassName()
    {
        return "ExtendedGuiTestObject";  //  the canonical name for the newly created testObject
    }

    다음 예제에서는 GetTestObjectClassName() 메소드를 대체하는 .Net 프록시를 보여줍니다.

    using Rational.Test.Ft.Domain;.
    .
    public override System.String GetTestObjectClassName()
    {
       return "ExtendedGuiTestObject";  //  the canonical name for the newly created testObject 
    }
  4. TestObject 2진 파일을 빌드하십시오.
  5. TestObject 2진 파일을 Functional Tester 사용자 정의 디렉토리 C:\Documents and Settings\All Users\Application Data\IBM\RFT\customization에 복사하여 파일을 배치하십시오.
  6. Functional Tester를 다시 시작하십시오.

피드백