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

引用维基百科

直观地说,可以将一个单元视为应用程序中最小的可测试部分。

现在,我不确切知道您的应用程序应该做什么,但通常您不必测试每个特定的类/模型。这是什么意思?好吧,您不需要测试这样的功能:“当我添加两个用户时会发生什么,然后我想按特定名称过滤它们?”。您不必对其进行测试,因为在这种情况下您将测试 GAE 函数.filter()。现在,你为什么要测试它?:) 谷歌为此向开发者付费!

但是如果你写一个“过滤器”方法呢?如果自定义filter()方法会怎样?然后你必须测试它们。我建议你阅读这个答案。问题是关于 Django 模型的,但实际上它对每个框架或编程语言都有效。

于 2013-05-01T07:40:41.660 回答