zoukankan      html  css  js  c++  java
  • 用python做自己主动化測试--对Java代码做单元測试 (1)

          

      大多数时间我们说的python。指的是C实现的python, 在这篇文章里,我们要说的是java实现的python,她的名字叫Jython, 大家能够到到官方站点http://www.jython.org/ 看看。近期2年非常活跃,公布新版本号比較多。事实上我在jython 2.1版本号的时候就開始接触过,但当时看到社区不活跃,没继续学习应用下去。近期公司有几个项目须要对外公布java 实现的API, java毕竟没那么熟悉,写起API接口測试的代码来速度还是没那么快。 还是高大上的python来的快。 python太强大,强大到非常干不论什么事情。不论什么事情要写代码做的。我第一个想到的是用python去解决,然后我也没有压力,没有太大动力去学习其它语言了,我不知道这是祸还是福。

         以下一个简单样例说明怎么对java代码做单元測试。

    近期一个项目要实现一个唯一的ID,开发是用java的 SecureRandom实现的,话说非常难出现反复,我还是想測測多大概率会出现反复,test_unique实现了这个单元測试代码,事实上是对SecureRandom方法的一个单元測试。test_max 加上这里就是为了演示用而已。 


    from java.security import SecureRandom
    from java.lang import Math

    这2个包都是JDk里自带的方法,不是jython里的,我们对这2个方法做測试。


    #!/usr/bin/env jython
    #coding=utf8
    
    from java.security import SecureRandom
    from java.lang import Math
    import unittest
    import time
    import sys
    
    
    class UniqueRandomTest(unittest.TestCase):
        def setUp(self):
            self.start_time=time.time()
            print "starting
    ", 
            self.dic={}
        def test_unique(self):
            unique=False
            for i in xrange(1,100000):
                random=SecureRandom()
                a=Math.abs(random.nextLong())
                if self.dic.has_key(a):
                    unique=True
                    print "duplicate "
                    break
                else:
                    self.dic[a]=1
            self.assertEquals(unique,False)
        
        def test_max(self):
            self.assertEquals(Math.max(8,5),8)
            
        def tearDown(self):
            print "cost", time.time()-self.start_time," second"
            print "end"
    执行单元測试。 结果是
    Finding files... done.
    Importing test modules ... done.

    starting
    cost 0.000999927520752  second
    end
    starting
    cost 1.85600018501  second
    end
    ----------------------------------------------------------------------
    Ran 2 tests in 2.043s

    OK



    假设想命令行执行unittest, 加上。

    if __name__ == '__main__':
        unittest.main()

  • 相关阅读:
    LVS---服务器集群系统
    I/O的基本概念
    rsync+cron同步文件服务
    IAAS、PAAS、SAAS及公有云、私有云概念
    Python3456学习结构
    Python列表常用函数解析
    Python字符串常用函数详解
    验证码生成
    Python随机数生成random.randint()与np.random.randint()
    python在线&离线安装第三库的方法
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7294237.html
Copyright © 2011-2022 走看看