如何使用httpretty/su执行python测试

2024-06-07 12:26:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我不熟悉python测试,所以请不要犹豫提供任何明显的信息。在

基本上我想用python做一些RESTful测试,发现httpretty和sure库看起来非常不错。在

我有一个python文件包含:

#!/usr/bin/python
from sure import expect
import requests, httpretty

@httpretty.activate 
def RestTest():
    httpretty.register_uri(httpretty.GET, "http://localhost:8090/test.json",
                           body='{"status": "ok"}',
                           content_type="application/json")

    response = requests.get("http://localhost:8090/test.json")
    expect(response.json()).to.equal({"status": "ok"}

它基本上与https://github.com/gabrielfalcao/HTTPretty上提供的示例代码相同

我的问题是:如何简单地运行这个测试,看看它是通过还是失败?我试着用./pythonFile来执行它,但是没有用。在


Tags: 文件testimportrestful信息jsonlocalhosthttp
2条回答

你试过叫你的方法吗?

或者注释是否意味着您不必显式调用方法?

如果我给你的方法打电话,它似乎有效。如果我更改expect一侧的值,它会正确地抱怨值不匹配。

如果您的测试被实现为一个Python函数,那么当然,仅仅尝试执行该文件并不能运行测试:该文件中没有实际调用RestTest

您需要某种测试框架来调用测试并整理结果。

一个这样的解决方案是python-nose,它将查找名为test_*的方法并运行它们。因此,如果要将RestTest重命名为test_rest,可以运行:

$ nosetests myfile.py
.
                                   
Ran 1 test in 0.012s

OK

nosetests命令有多种选项,用于控制运行哪些测试、如何处理和报告错误等等。

Python3在unittest模块中包含类似的功能,该模块也作为Python2的后端端口提供,称为unittest2。您可以修改代码以利用unittest,如下所示:

^{pr2}$

运行您的文件现在将提供与我们看到的类似的输出 nosetests

$ python myfile.py
.
                                   
Ran 1 test in 0.012s

OK

相关问题 更多 >

    热门问题