1

App Engine アプリケーションを開始しています。必要ないくつかの単純なモデルの定義を開始しました。アプリケーションのテストを書きたいと思っています (これは初めてのことです)。何をテストすべきかわかりません。これを行う方法( https://developers.google.com/appengine/docs/python/tools/localunittesting )はすでに調べましたが、何をテストすればよいかわかりません...

これまでの私のコードは次のとおりです。

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'))
4

1 に答える 1

2

ウィキペディアの引用:

直感的に、ユニットをアプリケーションのテスト可能な最小部分と見なすことができます。

さて、あなたのアプリケーションが何をすべきか正確にはわかりませんが、一般的には、特定のクラス/モデルをそれぞれテストする必要はありません。これは何を意味するのでしょうか?「2 人のユーザーを追加し、特定の名前でそれらをフィルター処理したい場合はどうなりますか?」というような機能をテストする必要はありません。テストする必要はありません。その場合、GAE 関数.filter()をテストするからです。では、なぜテストする必要があるのでしょうか。:) Google は開発者にその対価を支払っています!

しかし、「フィルター」メソッドを作成するとどうなるでしょうか。filter()メソッドをカスタマイズするとどうなるでしょうか。次に、それらをテストする必要があります。この回答を読むことをお勧めします。問題は Django モデルに関するものですが、実際にはすべてのフレームワークまたはプログラミング言語で有効です。

于 2013-05-01T07:40:41.660 に答える