< 前へ | 次へ >

演習 4: アプリケーションをテストするための Java テスト・クラスの作成

演習 4 では、ご使用のアプリケーションをテストするための Java™ テスト・クラスの作成を学びます。
始める前に、演習 3: Java メソッドの作成を完了しておく必要があります。
この演習では、以下を行います。
  1. まず、Java テスト・クラスを作成します。「InOutArray」 > 「Java リソース」 > 「src」 > 「sample.ims」を展開します。
  2. 「sample.ims」を右クリックし、「新規」 > 「クラス」を選択します。
  3. 「名前」フィールドに TestInOutProxy と入力します。TestInOutProxy クラスは例としてのみ提供されているものなので、注意してください。トランザクション・コードはご使用の IMS™ マシンの仕様に変更する必要があります。トランザクション・コードについては IMS 管理者にお問い合わせください。 コード内でステートメント input.setWs__trcd("SKS7 "); を見つけて変更できます。
  4. 「ソース・フォルダー」フィールドに「InOutArray/JavaSource」が含まれており、「パッケージ」フィールドに「sample.ims.data」が含まれていることを確認し、「終了」をクリックします。
  5. 「TestInOutProxy」をダブルクリックすると、Java エディターでファイルが開きます。
  6. 提供されているすべてのコードをコピーし、それを TestInOutProxy.java クラスに貼り付けます。 エディターに既存のコードがある場合は、コピーしたコードで置き換えます。
    注: TestInOutProxy.java Java クラスは英語ロケール用に作成されています。他のロケールではコードを変更する必要があります。
    /*
     * Created on 4-Oct-2004
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package sample.ims;
    import sample.ims.data.*;
    import com.ibm.connector2.ims.ico.IMSDFSMessageException;
    
    /**
     * @author ivyho
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class TestInOutProxy
    {
    	public static void main (String[] args)
    	{
    		try
    		{
    			// ---------------------------------------------------	
    			// Create the formatHandler, then create the input
    			// message bean from the formatHandler. 
    			// ---------------------------------------------------	
    			INOUTMSG input = new INOUTMSG();
    
    			int sz = input.getSize();
    			System.out.println("¥nInitial size of input message is: " + sz);
    
    			// ---------------------------------------------------		
    			// Don't set the length (LL) field yet... wait until 
    			// input message has been adjusted to reflect only
    			// the number of array elements actually sent. 
    			// ---------------------------------------------------	
    			input.setWs__zz((short) 0);
    			input.setWs__trcd("SKS7 ");
    
    			// ---------------------------------------------------
    			// Construct an array and populate it with the elements
    			// to be sent to the IMS application program.  In this
    			// case three elements are sent.  
    			// ---------------------------------------------------	
    			Inoutmsg_ws__customer[] customers = new Inoutmsg_ws__customer[3];
    
    			Inoutmsg_ws__customer aCustomer1 = new Inoutmsg_ws__customer();
    			aCustomer1.setWs__cust__name("Cathy Tang");
    			aCustomer1.setWs__cust__number("CN001");
    			customers[0] = aCustomer1;
    
    			Inoutmsg_ws__customer aCustomer2 = new Inoutmsg_ws__customer();
    			aCustomer2.setWs__cust__name("Haley Fung");
    			aCustomer2.setWs__cust__number("CN002");
    			customers[1] = aCustomer2;
    
    			Inoutmsg_ws__customer aCustomer3 = new Inoutmsg_ws__customer();
    			aCustomer3.setWs__cust__name("Steve Kuo");
    			aCustomer3.setWs__cust__number("CN003");
    			customers[2] = aCustomer3;
    
    			// ---------------------------------------------------
    			// Set the array on the input message.
    			// ---------------------------------------------------
    			input.setWs__customer(customers);
    			input.setIndx((short) 3);
    			
    			System.out.println("¥nInitial value of INDX is: " + input.getIndx());			
    
    			// ---------------------------------------------------			
    			// Reallocate the buffer to the actual size 
    			// ---------------------------------------------------			
    			byte[] bytes = input.getBytes();
    			int size = input.getSize();
    			byte[] newBytes = new byte[size];
    			System.arraycopy(bytes, 0, newBytes, 0, size);
    
    			// ---------------------------------------------------			
    			// Set the bytes back into the format handler and set
    			// the length field of the input message, now that 
    			// we know the actual size.
    			// ---------------------------------------------------			
    			input.setBytes(newBytes);
    			input.setWs__ll((short) size);
    			System.out.println("¥nAdjusted size of input message is: " + size);
    			System.out.println("¥nAdjusted size of INDX is: " + input.getIndx());				
    
    			// ---------------------------------------------------
    			// Set fields that follow the array after the input 
    			// message has been adjusted.  
    			// ---------------------------------------------------			 			
    			input.setWs__func__code("123456");
    
    			InOutImpl proxy = new InOutImpl();
    
    			INOUTMSG output = new sample.ims.data.INOUTMSG();
    			output = proxy.runInOut(input);
    
    			short outndx = output.getIndx();
    			System.out.println("¥nOutput value of INDX is: " + outndx);
    
    			Inoutmsg_ws__customer outArray[] = output.getWs__customer();
    
    			for (int i = 0; i < outndx; i++)
    			{
    				System.out.println(
    					"¥n"
    						+ outArray[i].getWs__cust__name()
    						+ outArray[i].getWs__cust__number());
    			}
    		}
    		catch (Exception e)
    		{
    			if (e instanceof IMSDFSMessageException)
    			{
    				System.out.println(
    					"¥nIMS returned message: "
    						+ ((IMSDFSMessageException) e).getDFSMessage());
    			}
    			else
    			{
    				System.out.println(
    					"¥nIMS Connector exception is: " + e);
    			}
    		}
    	}
    }
  7. Ctrl+S を押して、変更を保存します。
  8. 次に、アプリケーションをテストします。「InOutArray」プロジェクト、および「sample.ims」パッケージを展開します。
  9. 「TestInOutProxy.java」クラスを右クリックし、「実行」 > 「Java アプリケーション」を選択します。
  10. コンソールに次の出力が表示されます。
    test output
これで、入出力配列のチュートリアルは完了です。
< 前へ | 次へ >

フィードバック