BeanShell在人工测试与打点之中的应用
当前位置:以往代写 > JAVA 教程 >BeanShell在人工测试与打点之中的应用
2019-06-14

BeanShell在人工测试与打点之中的应用

BeanShell在人工测试与打点之中的应用

JUnit 单位测试学深入人心的同时,也发明它对用户交互测试无能为力:

TestCase 答允测试人员作动态的修改

可以在Test Case 中实现一个测试参数输入成果(UI 或参数设置文件)来办理这个问题,但实现这些成果的价钱与反复事情量会很大。

TestCase 可以利便地反复利用、组合、生存

不是所有所有测试情况下,都容许打开一个重量级的 Java IDE 编写有严格类型的 Java 代码。这就是剧本语言受接待的原因。

BeanShell 可以较好办理以上问题。

1.BeanShell根基:

bsh.Interpreter 是beanShell 的主要接口。

以下可以实现一个简朴的Java Shell:

public class TestInt {
public static void main(String[] args) {
bsh.Interpreter.main(args);
}
}

功效:

BeanShell 2.0b4 – by Pat Niemeyer ([email protected])

bsh % System.out.println("Hello BeanShell");

Hello BeanShell

bsh %

你也可以用以下代码实现同样的成果,代码中可以较量明明地看出其布局:

public static void main(String[] args) {
Reader in = new InputStreamReader( System.in );
PrintStream out = System.out;
PrintStream err = System.err;
boolean interactive = true;;
bsh.Interpreter i = new Interpreter( in, out, err, interactive );
i.run();//线程在这里阻塞读System.in
}

1.1.BeanShell上下文(Context/Namespace):

public static void main(String[] args) throws Throwable {
Reader in = new InputStreamReader( System.in );
PrintStream out = System.out;
PrintStream err = System.err;
boolean interactive = true;;
bsh.Interpreter i = new Interpreter( in, out, err, interactive );
Collection theObjectReadyForShellUser = new ArrayList();
theObjectReadyForShellUser.add("Str1");
i.set("myObject", theObjectReadyForShellUser);
i.run();
}

用户的UI:

BeanShell 2.0b4 – by Pat Niemeyer ([email protected])

bsh % System.out.println( myObject.get(0) );

Str1

bsh %

Shell的上下文在测试中出格有用。想一下,假如将上面的“theObjectReadyForShellUser”换成一个预先为测试用户生成的RMI当地接口存根,由测试用户挪用相应的存根要领。这可应用于动态测试,也可以应用于系统的长途打点。

1.2.静态Java代码与动态Java代码的组合利用。

public static void main(String[] args) throws Throwable {
Reader in = new InputStreamReader( System.in );
PrintStream out = System.out;
PrintStream err = System.err;
boolean interactive = true;;
bsh.Interpreter i = new Interpreter( in, out, err, interactive );
//show a dialog for user to input command.
String command = JOptionPane.showInputDialog( "Input Command(s)" );
i.eval( command );//Run the command
}

    关键字:

在线提交作业