單元測試備忘

選了很久的技術(shù)棧片任,最后選了groovy+spock+junit為核心的方案

原因是:
groovy作為腳本語言,和java很好并存振愿,使用起來有比較方便
spock 他的語法使得測試更易于理解易于維護
junit 作為老的測試框架 還是很不錯的

公司的核心框架是springboot 因此也做了點整合

簡單的為自己封裝了一個自己使用的測試工具包萍嬉,把一些重復(fù)的事情處理掉

主要實現(xiàn)了

如何簡化初始化mysql和hbase hbase,mysql操作封裝簡化

mysql使用了h2
hbase使用了hbase mini集群
mysql初始化支持讀sql文件和自定義的data文件
hbase支持讀取data文件 并自動創(chuàng)建相關(guān)表

data文件規(guī)則:

  1. 文件名即表名
  2. 具體內(nèi)容
    hbase
    第二行是 列和列簇的定義 語法: 列簇1(列1芽偏, 列2..) ..
    第三行 數(shù)據(jù)定義 語法: rowkey |列1 |列2 ...
hbase
base(ptRule,family,quality) org(schoolId,structId)
role:1          |every_day      |count         |   every_day_uv|             1|      schoolId1|        structId1|
role:2          |every_day      |count         |   every_day_uv|             1|      schoolId1|        structId2|
1               |every_day      |count         |   every_day_uv|             1|      schoolId1|        structId3|
2               |every_day      |count         |   every_day_uv|             1|      schoolId1|        structId4|

mysql
第二行是 列定義 語法: 列1揽乱, 列2....
第三行 數(shù)據(jù)定義 列1 |列2 ...

mysql
id,name
1          |every_day
2          |every_day

自動讀取data目錄下的mysql相關(guān)的數(shù)據(jù)文件和sql文件

sql文件優(yōu)先于數(shù)據(jù)文件
hbase不會自動讀取名眉,只會在第一次啟動hbase mini集群的時候自動讀取
因為很多時候測試,并不需要啟動hbase mini集群 并且集群啟動要幾十秒 浪味時間
mhysql和hbase只會初始化一次 多次調(diào)用沒用
使用方式

H2Config.getH2Datasource()
H2Config.getSql()
HbaseConfig.start()
HbaseTestUtil.simpleScan("","","")
//還有其他封裝方法HbaseTestUtil.XXX()    MysqlTestUtil.XXX()
@Configuration
@Profile("test")
class TestConfig {
  @Bean(name = "quotaDataSource")
  @Qualifier("quotaDataSource")
  @Primary
  DataSource tagDataSource() {
    return  H2Config.getH2Datasource()
  }

  @Bean
  DataInitScript dataInitScript(){
    //hbase的啟動太慢 還是手動啟動吧
    DataInitScript dataInitScript = new DataInitScript()
    dataInitScript.initAll true
    return dataInitScript
  }
}

spingboot 整合

@WebAppConfiguration
@ContextConfiguration(classes = [App.class], loader = SpringBootContextLoader.class)
class QuotaConditionDaoImplTest extends Specification {
  def setupSpec() {}  
  def setup() {}
  def "test demo"(){
        given:
            A a = new A()
        when:
            String result = a.doMethod()
        then:
            result.equal(data)
        //expect:
        cleanup:
            //clean
        where:
            data    |_
            "data"  |_
            "data2" |_
   }
}

@SpringBootApplication
@ComponentScan(["com.XXX.core","com.dongweima.data.unit.test"])
class App  extends SpringBootServletInitializer {

  static void main(String[] args) {
    run(App.class, args)
  }

  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(App.class)
  }
}

maven 發(fā)布在阿里云maven上

 <dependency>
      <groupId>com.dongweima.test</groupId>
      <artifactId>test-util</artifactId>
      <version>${test-util.version}</version>
      <scope>test</scope>
    </dependency>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凰棉,一起剝皮案震驚了整個濱河市损拢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌撒犀,老刑警劉巖探橱,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異绘证,居然都是意外死亡,警方通過查閱死者的電腦和手機哗讥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門嚷那,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人杆煞,你說我怎么就攤上這事魏宽。” “怎么了决乎?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵队询,是天一觀的道長。 經(jīng)常有香客問我构诚,道長蚌斩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任范嘱,我火速辦了婚禮送膳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘丑蛤。我一直安慰自己叠聋,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布受裹。 她就那樣靜靜地躺著碌补,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上厦章,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天镇匀,我揣著相機與錄音,去河邊找鬼闷袒。 笑死坑律,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的囊骤。 我是一名探鬼主播晃择,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼也物!你這毒婦竟也來了宫屠?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤滑蚯,失蹤者是張志新(化名)和其女友劉穎浪蹂,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體告材,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡坤次,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了斥赋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片缰猴。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖疤剑,靈堂內(nèi)的尸體忽然破棺而出滑绒,到底是詐尸還是另有隱情,我是刑警寧澤隘膘,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布疑故,位于F島的核電站,受9級特大地震影響弯菊,放射性物質(zhì)發(fā)生泄漏纵势。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一管钳、第九天 我趴在偏房一處隱蔽的房頂上張望吨悍。 院中可真熱鬧,春花似錦蹋嵌、人聲如沸育瓜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躏仇。三九已至恋脚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間焰手,已是汗流浹背糟描。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留书妻,地道東北人船响。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓,卻偏偏與公主長得像躲履,于是被迫代替她去往敵國和親见间。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容