使用裝飾器達到測試框架有序拆分

2021-10-17 07:55:25 字數 1514 閱讀 8944

在打造測試框架的時候,隨著業務的增長,會產生框架無限增長的風險,那如何對框架進行有序的分拆,需要使用裝飾器

舉例:現有乙個框架

defa(

):print

("a"

)def

test()

: a(

)

****************************** 1 passed in 0.06s ******************************

[100%]a

需要擴充套件

defb(

):print

("before a"

)print

("a"

)print

("after a"

)def

test()

: b(

)

****************************** 1 passed in 0.01s ******************************

[100%]

before a

aafter a

分拆框架

defb(

):print

("before a"

) a(

)print

("after a"

)defa(

):print

("a"

)def

test()

: b(

)

****************************** 1 passed in 0.01s ******************************

[100%]

before a

aafter a

注意這裡最後調的是b函式,如何滿足呼叫a函式並且還能達到擴充套件框架的目的

def

b(fun)

:def

run(

*args,

**kwargs)

:print

("before a"

) fun(

*args,

**kwargs)

print

("after a"

)return run

@bdefa(

):print

("a"

)def

test()

: a(

)

****************************** 1 passed in 0.01s ******************************

[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...