我已經用Python編寫了一個程序,它使用兩個不同的API來從兩個不同的服務(CKAN和MediaWiki)獲取數據。 特別是有一個類Resource,它從上述服務請求數據並處理它。最佳實踐:自動化Web API測試
在某些時候,我已經得出結論,我的應用程序需要測試。 問題是,我在網絡和書籍上找到的所有示例都不涉及這種情況。
例如,資源類中我有一個方法:
def load_from_ckan(self):
"""
Get the resource
specified by self.id
from config.ckan_api_url
"""
data = json.dumps({'id': self.id})
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
url = config.ckan_api_url + '/action/resource_show'
r = requests.post(url, timeout=config.ckan_request_timeout, data=data, headers=headers)
assert r.ok, r
resource = json.loads(r.content)
resource = resource["result"]
for key in resource:
setattr(self, key, resource[key])
的load_from_ckan方法從CKAN API獲取有關資源的數據,並將其分配給對象。這很簡單,但...
我的問題是:如何測試這樣的方法?或我應該在這裏測試什麼?
我想過把結果醃製(保存)到HDD的可能性。然後我可以在測試中加載它,並與使用load_from_ckan()初始化的對象進行比較。但是CKAN是社區驅動的平臺,這種測試的行爲將是不可預測的。
如果有任何有關自動化測試哲學的書籍(比如測試什麼,不測試什麼,如何使測試有意義等),請給我一個鏈接。
檢查返回對象的屬性是一個好主意,謝謝!我只是檢查對象是否包含我在代碼中稍後使用的所有屬性。 –