Python RESTful API 的单元测试

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/30310860/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-19 08:12:43  来源:igfitidea点击:

Unit Testing for a Python RESTful API

pythonrestapiunit-testingpython-requests

提问by Josh Usre

What's the best way to perform Unit Testing for a RESTful API that includes email functionality (lost passwords, user activation) in Python?

在 Python 中对包含电子邮件功能(丢失密码、用户激活)的 RESTful API 执行单元测试的最佳方法是什么?

Everything is done via HTTP POST / GET and at this time, authentication isn't involved.

一切都是通过 HTTP POST / GET 完成的,此时不涉及身份验证。

Should I just use the requestslibrary and manually do everything I want? Is it possible to use requeststo automate the parts of my Unit Testing that involves email?

我应该只使用requests图书馆并手动完成我想做的一切吗?是否可以用于requests自动化我的单元测试中涉及电子邮件的部分?

采纳答案by Freek Wiekmeijer

Often the web framework that you use to implement the REST api will also offer unit testing support. For example:

通常,用于实现 REST api 的 Web 框架也会提供单元测试支持。例如:

These test classes are shortcuts which plug the request directly into the framework's Url dispatcher. That saves you the hassle of finding a free port, spawning a "real" server and connecting the http client from your unit test.

这些测试类是将请求直接插入框架的 Url 调度程序的快捷方式。这样可以省去寻找空闲端口、生成“真实”服务器以及从单元测试连接 http 客户端的麻烦。

As for the e-mail sending: I would mock that part in the TestCase.setUpmethod. Just change the reference to the e-mail sending module / class to another module/class which loops the outgoing e-mail back to the unit test for evaluation rather than e-mailing.

至于发送电子邮件:我会在TestCase.setUp方法中模拟该部分。只需将对电子邮件发送模块/类的引用更改为另一个模块/类,该模块/类将外发电子邮件循环回单元测试进行评估,而不是发送电子邮件。