1

我正在啓動App Engine應用程序。 我開始定義一些我需要的簡單模型。 我想爲我的應用程序編寫測試(這將是我第一次完成該任務)。 我看不到我應該測試什麼。 我已經看了如何做到這一點(https://developers.google.com/appengine/docs/python/tools/localunittesting),但我只是不知道要考什麼?定義Appengine數據存儲模型後要測試什麼

這裏是我到目前爲止的代碼:

class User(db.Model): 
    email = db.EmailProperty() 
    name = db.StringProperty() 

class Service(db.Model): 
    name = db.StringProperty(required=True) 

class UserService(db.Model): 
    user_id = db.ReferenceProperty(User, 
            required=True, 
            collection_name='user_services') 
    service_id = db.ReferenceProperty(Service, 
             required=True) 
    access_token = db.StringProperty(required=True) 
    refresh_token = db.StringProperty(required=True) 

class LocalServer(db.Model): 
    authentication_token = db.StringProperty(required=True) 

class Task(db.Model): 
    user_service_id = db.Reference(UserService, 
            required=True, 
            collection_name='tasks') 
    local_server_id = db.ReferenceProperty(LocalServer, 
              required=True, 
              collection_name='tasks') 
    creation_date = db.DateTimeProperty(auto_now_add=True, 
             required=True) 
    completion_date = db.DateTimeProperty(required=True) 
    number_of_files = db.IntegerProperty(required=True) 
    status = db.StringProperty(required=True, 
           choices=('created', 'validated', 'in_progress', 'done')) 

回答

2

報價Wikipedia

直觀上,可以將單元視爲應用程序的最小可測試部分。

現在,我不知道你的應用程序應該做什麼,但一般來說,你不必測試每個特定的類/模型。這是什麼意思?那麼,你不需要測試這樣的功能:「當我添加兩個用戶時會發生什麼,然後我想按特定名稱對它們進行過濾?」。您不必測試它,因爲在那種情況下,您將測試GAE功能,.filter()。現在,你爲什麼要測試它? :)谷歌支付它的開發者!

但是如果你寫一個「過濾器」的方法呢?如果您自定義過濾器()方法怎麼辦?然後你必須測試它們。 我建議你閱讀this answer。問題是關於Django模型,但實際上它適用於每種框架或編程語言。

+1

謝謝。它確實有道理,發佈的答案很有幫助;) – 2013-05-01 08:41:48

相關問題