BeanShell Java とコンパイルされた Java の主な違いは、型システムにあります。 Java は強く型付けされますが、BeanShell はスクリプト環境で型付けを緩くできます。 ただし、必要に応じて、BeanShell での型付けを厳密に強制することができます。
BeanShell では、型付けが自然な方法で緩められているため、標準的な Java メソッド コードのように見える BeanShell スクリプトを作成することができます。 ただし、Java 構文フレームワークを維持しつつ、Perl や JavaScript などの従来のスクリプト言語のように見えるスクリプトを作成することもできます。
変数が型付けされている場合、BeanShell は型をサポートおよびチェックします。 変数が型付けされていない場合、BeanShell は変数の実際の型を誤って使用しようとした場合にエラーを返すだけです。
以下の Java フラグメントはすべて BeanShell で有効です。
foo = "Foo"; four = (2+2) * 2 / 2.0; print(foo + " = " + four); 」を参照してください。 」を参照してください。
hash = new Hashtable();
date = new Date();
hash.put("today", date);
」を参照してください。
」を参照してください。
BeanShell では、メソッドを宣言し、その後にメソッドを使用できます。 引数および戻り値型も緩く型付けできます。
int addTwoNumbers(int a, int b){
return a + b;
}
add (a,b){
return a + b;
}
2 番目の例では、以下は正しく動作します。
sumI = add (5,7);
sumS = add("DevTest " , "Rocks");
sumM = add ("version ", 2);
BeanShell は、その使用を容易にするコマンドのライブラリも提供しています。
これらのコマンドの例を以下に示します。
詳細については、http://www.postgresql.org にある BeanShell のユーザー ガイドを参照してください。
また、同じ場所で、BeanShell、ソース コード、および完全な Javadoc を取得できます。
スタンドアロンでの BeanShell の使用
BeanShell はスタンドアロン インタープリタとして使用可能なため、DevTest の外部で試行できます。 BeanShell は、www.beanshell.org からダウンロードできます。 このダウンロードは、bsh-xx.jar (xx はバージョン番号。現在は 2.0)という名前の単一の小さな JAR ファイルです。 この JAR ファイルをクラスパスに追加します。
以下の設定で BeanShell を使用することができます。
Import bsh.Interpreter;
」を参照してください。
」を参照してください。
Interpreter I = new Interpreter();
i.set ("x",5);
i.set("today", new Date());
Date d = (Date)i.get("date");
i.eval("myX = x * 10");
System.out.println(i.get("myX"));
DevTest での BeanShell の使用
BeanShell インタープリタは、JavaScript 実行ステップおよびスクリプト実行によるアサートアサーションで使用されます。 これらのエレメントは、どちらも DevTest Java オブジェクトと現在の DevTest の状態(プロパティ)を公開します。 これにより、カスタム機能を追加するための強力な環境が実現します。 公開された Java オブジェクトは、テストの現在の状態の確認と変更の両方に使用できます。 たとえば、スクリプト内の DevTest プロパティの読み取り、変更、作成ができます。
出発点として、DevTest の TestExec クラスを理解してください、 TestExec およびその他の多くのクラスの情報については、「SDK の使用」を参照してください。
等号が存在する場合、DevTest は BeanShell 内部のプロパティ表記を使用します。 以下に例を示します。
{{= new Date()}}
このプロパティ式は、BeanShell を使用して解釈されます。
|
Copyright © 2014 CA Technologies.
All rights reserved.
|
|