科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道交互测试接口的简单实现 reflect(反射) + XStream

交互测试接口的简单实现 reflect(反射) + XStream

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

交互测试接口的简单实现 reflect(反射) + XStream。

作者:Mark 来源:CSDN 2008年2月28日

关键字: java XStream reflect

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

交互测试接口的简单实现
 
1.       问题
或者你已经习惯了写 Hardcode JUnit Test Case。但这里有问题:
l         你写的代码要经过 Java compiler 才可运行,但实际的环境下不一定允许这样
l         很难用于交互测试与开发期的错误跟踪。不能要求你的交互测试环境总有一个 Java IDE。
 
上述问题在 Java Application 的 RMI 接口测试和错误跟踪时就更明显。
 
 
2.       解决方法
要做交互测试与错误跟踪,要面对的情况是不可料的,故很难用 Hardcode 的静态语言 Java 去做。但我对动态语言(如 BeanShell )也不大了解。但相对比较了解 Java 的反射机制与 XStream(http://xstream.codehaus.org/) 的从 XML 文本到 Java Object 的应用
 
Java 的 reflect(反射) + XStream 的 文本到 Object instance :
 
 
publicclass MyMethodInfo implements Comparable<MyMethodInfo> {
    public Method method;
 
    public MyMethodInfo(Method method) {
       this.method = method;
    }
 
    public String toString() {
       StringBuilder builder = new StringBuilder();
       builder.append( method.getName() ).append( " (" );
       Class[] params = method.getParameterTypes();
       for( int i = 0 ; i < params.length; i++ ) {
           builder.append( params[i].getSimpleName() );
           if( i < params.length - 1 ) {
              builder.append( ", " );
           }
       }
       builder.append( ')' );
       return builder.toString();
    }
 
    publicint compareTo(MyMethodInfo o) {
       returnthis.method.getName().compareTo( o.method.getName() );
    }
 
}

 
 
publicclass MethodArgPanel extends JPanel {
 
    privatestaticfinallongserialVersionUID = 1L;
    private JScrollPane jScrollPane = null;
    private JTextArea argTextArea = null;
 
    /**
     *Thisisthedefaultconstructor
     */
    public MethodArgPanel() {
       super();
       initialize();
    }
 
    /**
     *Thismethodinitializesthis
     *
     *@returnvoid
     */
    privatevoid initialize() {
       this.setSize(246, 230);
       this.setLayout(new BorderLayout());
       this.add(getJScrollPane(), BorderLayout.CENTER);
    }
 
    /**
     *ThismethodinitializesjScrollPane
     *
     *@returnjavax.swing.JScrollPane
     */
    private JScrollPane getJScrollPane() {
       if ( jScrollPane == null ) {
           jScrollPane = new JScrollPane();
           jScrollPane.setViewportView(getArgTextArea());
       }
       returnjScrollPane;
    }
 
    /**
     *ThismethodinitializesargTextArea
     *
     *@returnjavax.swing.JTextArea  
     */
    private JTextArea getArgTextArea() {
       if ( argTextArea == null ) {
           argTextArea = new JTextArea();
       }
       returnargTextArea;
    }
   
    public String getText() {
       returnargTextArea.getText();
    }
 
// @jve:decl-index=0:visual-constraint="10,10"
 
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章