摹客測試蛛絲程式中的綁匪

2021-08-22 11:23:53 字數 1530 閱讀 1335

為了響應偉大的「抵制中英文夾雜的資本主義不良思潮」運動,本文將全部用中文書寫(**暫時例外)。

最近工作需要,發現要寫**擴充套件「蛛絲」來實現乙個春天遺留系統的移植。基本上就是圍繞著春天的「應用上下文」和蛛絲的綁匪/模組來上下其手。

在測試的的時候,習慣性地選擇用「簡單摹客」來測試行為。摹客春天的應用上下文和豆子工廠真是簡單啊:

[code]

listablebeanfactory beanfactory = mock(listablebeanfactory.class);

expect(beanfactory.getbeandefinitions()).andreturn(beannames);

replay();

...verify();

[/code]

但是在摹客蛛絲的綁匪的時候遇到了麻煩。假設我要紀錄這麼一段行為期待的話:

[code]

binder.bind(list.class).annotatedwith(names.named("test")).to(arraylist.class).in(singleton.class);

[/code]

[code]

binder binder = mock(binder.class);

annotatedbindingbuilder annotatedbuilder = mock(annotatedbindingbuilder.class);

linkedbindingbuilder linkedbuilder = mock(likedbindingbuilder.class);

scopedbindingbuilder scopedbuilder = mock(scopedbindingbuilder.class);

expect(binder.bind(list.class)).andreturn(annotatedbuilder);

expect(annotatedbuilder.annotatedwith(names.named("test"))).andreturn(linkedbuilder);

expect(linkedbuilder.to(araylist.class)).andreturn(scopedbuilder);

scopedbuilder.in(singleton.class);

[/code]

哈哈,爽到了吧?這還是就對應一句蛛絲文件所謂的「嵌入式領域特殊語言」。要是多來那麼幾句,那才叫真爽啊。

為了避免爽到高潮,我就寫了乙個小動態**來包裝簡單摹客。用了這個包裝之後,期待**就變成了簡單的:

[code]

binder binder = mockbinder();

binder.bind(list.class).annotatedwith(names.named("test")).to(arraylist.class).in(singleton.class);

[/code]

這個****寫起來不是很難。因為**屬於公司產權,所以就不貼了。不過,是不是只有我遇到過這種需要摹客蛛絲的綁匪的需求呢? :wink:

摹客 原型設計工具介紹

原型工具對於設計師 產品經理 開發者比較適用,一般使用者很少能接觸到,可以把它理解成版的網頁 應用 軟體等等,裡面的按鈕是可以點選並且有反饋的,原型設計師用原型向開發者展示並說明這個產品應該是什麼樣子的。同時,摹客注重設計,而非工具的使用,用簡單的操作為客戶提供豐富的頁面設計。所以,摹客適用人群範圍...

摹客 iDoc 201901 1 功能優化點評

2019唰地一下就來了,摹客idoc 2 互動新增外部鏈結 現在使用idoc做原型,不僅僅停留在內部頁面間的互動了,還可以設定外部鏈結。產品演示效果更加還原 貼切。3 跨頁面的互動複製 有小夥伴反映自己的原型稿有上百頁,需要新增的互動非常多,乙個乙個去新增真的是被整崩潰了.每頁重複熱區老是加的話效率...

摹客 Veer 第二屆設計大賽邀你來戰!

2018年12月,摹客設計大賽一年一度一歸來。繼2017年摹客全國首屆原型設計大賽成功舉辦後,本次大賽是摹客第二屆設計大賽。大賽由摹客主辦,veer獨家冠名贊助,islide和創客貼協辦,國內多家知名協會 企業 高校聯合支援,旨在進一步培育和挖掘設計人才,推動中國產品設計行業的發展。本次大賽將在20...