科技行者

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

知识库

知识库 安全导航

至顶网软件频道检测代码是否有Junit Test Class的小功能

检测代码是否有Junit Test Class的小功能

  • 扫一扫
    分享文章到微信

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

去年为了公司的Junit需求做了一个检测我们的代码是否有Junit Test Class的一个小Tool, 今天又翻出来看了下,觉得里面的有个小功能可能对大家有用,如果你也觉得有用,我觉得很荣幸。

作者:中国IT实验室 来源:中国IT实验室 2007年9月24日

关键字: 代码 检测 编程 java

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

    去年为了公司的Junit需求做了一个检测我们的代码是否有Junit Test Class的一个小Tool, 今天又翻出来看了下,觉得里面的有个小功能可能对大家有用,如果你也觉得有用,我觉得很荣幸。:)

1.用途:
指定一个类, 分析出类中所有方法的精确位置- 也就是某个方法在哪两行之间。
(大家可以考虑一下怎么做,然后再看看我的方法是不是太笨了。-_-!!)

2.用法:
新建一个类,将这几行代码加到mail方法,例如:



 1     public   static   void  main(String[] args)  {
 2          //  CVSParseMethod
 3          //  C:/Documents and
 4          //  Settings/hut/workspace/junitcheck/src/branding/src/java/com/webex/webapp/branding/common/BrandingTools.java
 5         CVSParseMethod x  =   new  CVSParseMethod( " C:\\Documents and Settings\\hut\\workspace\\AccountMethodLocation\\ " ,
 6                  " net.blogjava.xmp123.CVSClass " );
 7
 8          // src/java/com/webex/webapp/urlapi/biz/URLAPIMgrImpl.java
 9          // C:/Documents and Settings/hut/workspace/junitcheck/src/meetingcenter/src/java/com/webex/webapp/meetingcenter/action/common/QuickStartInviteAction.java
10         System.out.println(x.parseAction());
11     }

[补充]: CVSParseMethod的构造函数是CVSParseMethod(String String1,String String2), String1是目标的java文件在文件系统的位置,String2是类的全名..如net.blogjava.xmp123.CVSClass.
BTW:不要忘记将后面download的jar导过来。

结果会打在Console里,象这样:

Loading net.blogjava.xmp123.CVSClass
Loaded net.blogjava.xmp123.CVSClass
Found java source file in C:\Documents and Settings\hut\workspace\AccountMethodLocation
/ net / blogjava / xmp123 / CVSClass.java
Parsing net.blogjava.xmp123.CVSClass
Parsed a common 
class  and brackets can matched the methods correctly
MethodParseEngine have searched 
10  methods(Including constructors).
Completed :Spend 
0.187  seconds to parse  this  file.
[
public  CVSClass(String) locate between  52  and  123
public  CVSMethod[] getCvsMethodArray() locate between  128  and  130
public  CVSConstructor[] getCvsConstructorArray() locate between  135  and  137
public  Set getMethodSet() locate between  142  and  144
public  Set getConstructorSet() locate between  149  and  151
public  String getClasspath() locate between  156  and  158
public  List getMethodList() locate between  163  and  165
public  String getClassName() locate between  174  and  176
public   boolean  equals(Object) locate between  183  and  188
public   int  hashCode() locate between  193  and  196
]

3. 我是怎么做的。

.用java反射拿出所有的的类的构造函数和方法。
.读java源文件,通过匹配左右括号来匹配方法并记录出合适的位置。

4. 存在的问题:
到目前为止,这个小程序至少不能分析它自己的主类:CVSParseMethod(很多Exceptions), 因为这个类里面定义的一些String中含用 { }而导致匹配的时候出错。呵呵。但是我保证,它应该在>90%的概率下正常工作。:) 

5. 下载的地址:
http://www.blogjava.net/Files/xmp123/CountMethodLocation.zip

查看本文来源

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

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

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