為了響應偉大的「抵制中英文夾雜的資本主義不良思潮」運動,本文將全部用中文書寫(**暫時例外)。
最近工作需要,發現要寫**擴充套件「蛛絲」來實現乙個春天遺留系統的移植。基本上就是圍繞著春天的「應用上下文」和蛛絲的綁匪/模組來上下其手。
在測試的的時候,習慣性地選擇用「簡單摹客」來測試行為。摹客春天的應用上下文和豆子工廠真是簡單啊:
[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...