繁体   English   中英

如何编写Django测试的示例

[英]Example of how to write Django Test

我必须为所构建的某些服务编写一些测试,以将后端连接到另一个团队成员正在构建的移动应用程序。 完成测试后,我被要求编写一些单元测试。 我不熟悉Django测试,所以我想问问是否有人可以给我一个有关如何测试其中一项服务的示例。 这样,我便可以通过示例学习,剩下的事我一个人做吗?

这是我构建的一项服务示例,该服务在数据库中查找该电子邮件中是否有用户,并返回json对象:

@csrf_exempt
def user_find(request):
    args = json.loads(request.body, object_hook=utils._datetime_decoder)
    providedEmail = args['providedEmail']
    try:
        user = User.objects.get(email=providedEmail)
        user_dict = {'exists': 'true', 'name': user.first_name, 'id': user.id}
        return HttpResponse(json.dumps(user_dict))
    except User.DoesNotExist:
        user_dict = {'exists': 'false'} 
        return HttpResponse(json.dumps(user_dict))

测试这样的东西的正确方法是什么? 我猜想我必须以某种方式模仿一个请求,该请求会给我一封电子邮件,然后进行两项测试,其中一项匹配,另一项与现有用户不匹配,并确保每个返回正确的对象。 这是正确的思考方式吗? 有人可以帮我一点语法吗? 我猜想以某种方式使用django.test.Client是否合适?

您需要测试的是您的代码是否无法破解。 这意味着您的代码应始终给出响应,并且在任何情况下均不会产生任何错误。

因为如果您可以测试的东西是-

1)授权-任何用户或只有经过身份验证的用户都可以访问服务,如果仅经过身份验证,则测试匿名和已认证用户的响应。 在测试反应,测试您获得401为匿名用户和200认证的。

2)对不存在的电子邮件的回复

3)如果first_name是可选的,则对没有first_name的用户的响应。

4)有效请求的情况下的响应数据-是正确用户收到的数据

可能还有更多测试,这些都是从我的头开始的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM