【问题标题】:What to test after defining Appengine Datastore models定义 Appengine Datastore 模型后要测试的内容
【发布时间】:2013-04-25 04:51:32
【问题描述】:

我正在启动一个 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'))

【问题讨论】:

    标签: python google-app-engine unit-testing google-cloud-datastore


    【解决方案1】:

    引用Wikipedia:

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

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

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

    【讨论】:

    • 谢谢。这确实有道理,并且发布的答案很有帮助;)
    猜你喜欢
    • 2013-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2013-01-16
    • 1970-01-01
    相关资源
    最近更新 更多