安慰剂是在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第三方库


热门话题
HTTP标头的java InputStream未终止   java测试SpringWebListener   具有定义的替换编号Java的regex ReplaceAll   在java中使用contains()方法   java在选择查询中使用JoinColumn字段   具有用户的java Start-stop demon不是以给定用户启动   java glBufferData生成GL\u无效\u操作   java中循环代码的循环   Java位无符号移位(>>>>)会产生奇怪的结果   java HQL使用点分隔符从select获取结果   条纹、弹簧、玩耍(或?):使用哪种高性能Java框架?   广播接收机中的java停止服务   java回收器视图占据整个屏幕。不在上面显示我的UI元素   java使MySQL查询更快   java MappedByteBuffer查询   java递归算法问题