在打造測試框架的時候,隨著業務的增長,會產生框架無限增長的風險,那如何對框架進行有序的分拆,需要使用裝飾器
舉例:現有乙個框架
****************************** 1 passed in 0.06s ******************************defa(
("a"
)def
test()
: a(
)
[100%]a
需要擴充套件
****************************** 1 passed in 0.01s ******************************defb(
("before a"
("a"
("after a"
)def
test()
: b(
)
[100%]
before a
aafter a
分拆框架
****************************** 1 passed in 0.01s ******************************defb(
("before a"
) a(
("after a"
)defa(
("a"
)def
test()
: b(
)
[100%]
before a
aafter a
注意這裡最後調的是b函式,如何滿足呼叫a函式並且還能達到擴充套件框架的目的
****************************** 1 passed in 0.01s ******************************def
b(fun)
:def
run(
*args,
**kwargs)
("before a"
) fun(
*args,
**kwargs)
("after a"
)return run
@bdefa(
("a"
)def
test()
: a(
)
[100%]
before a
aafter a
python裝飾器測試 python裝飾器
一 了解下python裝飾器 套用個通用的說法,可以給被裝飾的物件 物件或函式 新增額外的功能 二 語法 咋用裝飾器?使用 語法糖 testdeftest case print pass 例子中,還缺少乙個test函式的定義,這裡先不寫。如果有傳參的需求,python支援可變引數和關鍵字引數的,這就...
測試python裝飾器decorator
coding utf 8 主題 測試python裝飾器的一些特性 def dec2 f print dec2 return lambda x bye,s x def dec f print inside dec print f call return lambda x hello,s x dec2 ...
mini web框架 裝飾器 總結1 5 3 1)
原則 開放封閉 可以擴充套件,但是不可以修改。也就是說軟體對擴充套件開放,對修改關閉。運用技術 閉包 一共兩種方法,乙個使用閉包,乙個使用類 使用多個裝飾器是從上到下 def test2 func def return num,args,kwargs print test2 print 附加 d n...