安慰剂是在python应用程序中模拟外部api的工具。

python-placebo的Python项目详细描述


安慰剂是一个实用程序,它可以帮助以可重用和可组合的方式模拟api端点。

要首先使用安慰剂,我们应该为我们的模拟创建一个安慰剂类。安慰剂类表示对特定请求的响应。如果任何请求的url和http方法与mock匹配,则返回安慰剂类中描述的响应。我们可以创建这样的安慰剂模拟:

from placebo import Placebo

class UsersResponse(Placebo):
    url = 'http://www.acme.com/api/v1/users/'
    body = json.dumps([{'name': 'Huseyin',
                        'last_name': 'Yilmaz'}])

安慰剂对象的主接口是decorator。任何用安慰剂类修饰的函数都将被安慰剂类嘲笑。

@UserResponse.decorate
def users_api_test(self):
    ...

你可以用这个装饰器装饰任何函数或方法。即使是Django的观点!这使得针对外部api的开发非常容易。

@UserResponse.decorate
def users_list_view(request):
    ...

如果您的代码使用多个api端点,那么您可以很容易地将安慰剂装饰器堆叠在彼此之上。

@AuthResponse.decorate
@UserResponse.decorate
def test_valid_get_user(request):
    ...

@AuthResponse.decorate(status=401)
@UserResponse.decorate
def test_cannot_authenticate(request):
    ...

@AuthResponse.decorate
@UserResponse.decorate(status=503)
def test_api_is_not_available(request):
    ...

有关详细信息,请参阅documentation

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaCenter是JavaFX2中不可执行的窗格   java Docker将容器连接到本地数据库   java无法通过Spring从Redis获得正确的值   java为什么要将数组转换为列表再转换为数组   Java泛型在方法中放入字符串或整数参数   在Cloud Bigtable SDK中找不到java类   java Mavensiteplugin无法加载生成的源(Jaxb)   java GWT序列化和Appengine通道Api   PrintWriter out=new PrintWriter(sWriter)和PrintWriter out=response之间的java差异。getWriter()   空手道DSL中的javascript,在java参数调用中传递变量时如何转义单引号   windows 64位java可以与32位tomcat一起使用   为for循环| Java输入参数   java您可以更改SWT选项卡项的背景和/或前景颜色吗?   用java生成6位pin码   java如何从另一个通量中排除通量中的所有元素   java无法调用“javafx.scene.control.ComboBox.getItems()”,因为“Controller.getMyBox()”的返回值为null   将Java字符串与数组匹配时出现问题   java如何使用HttpsUrlConnection对SSL连接使用代理身份验证?   java如何检查XML元素是否包含CDATA?