2017-02-28 36 views
0

我正在爲後端開發一個測試自動化框架(使用python的單元測試)。 有不同的組件和數據庫連接到他們,但我的問題是什麼最佳實踐存儲我將在框架中使用的端點(API)? (目錄結構) 我應該將它們存儲爲每個組件的類變量嗎?或者創建一個包含所有API的獨立類?自動化框架結構:在哪裏存儲端點

假設我們有comp1和comp2 所以我應該定義一個新的類(如Endpoints),它包含所有這些組件的API,或者只是將API添加到組件中?

comp1.py:

Class Comp1: 
    COMP1_ENDPOINT = '/url' #here? 
    def __init__(self): 
     ... 

comp2.py:

Class Comp2: 
    COMP2_ENDPOINT = '/url' #here? 
    def __init__(self): 
     ... 

或定義一個新的類,如:

endpoints.py:

Class EndPoitns(): 
    COMP1_ENDPOIN: '/url' 
    COMP2_ENDPOINT: '/url' 

感謝提前

+0

我建議你提供COMP1,COMP2和API的部分代碼,使問題更加具體。 –

回答

0

我建議使用buildin abc模塊,並使用url抽象屬性創建一個抽象類,然後繼承該類來構建Comp1和Comp2類。

import abc 

class AbstractEndpoint(object): 
    __metaclass__ = abc.ABCMeta 

    def get_url(self): 
     return url 

    def set_url(self, value): 
     url = value 

    url = abc.abstractproperty(get_url, set_url) 


class Comp2(AbstractEndpoint): 
    url = '/url/comp2' # Internally the language will call set_url method 


class Comp1(AbstractEndpoint): 
    url = '/url/comp1' 

print Comp1().url # Internally the language will call get_url method 
print Comp2().url 

通過使用這種方法:

  • 當你想要獲得屬性值的abc.abstractproperty採用兩種方法,第一個是要被使用,而當值是第二個使用分配給該財產。
  • 並且您正在強制子類使用特定的url定義url屬性。

欲瞭解更多信息,請訪問文檔https://docs.python.org/2/library/abc.html#abc.abstractproperty