我有一个从本地ldap获取用户列表的函数。 我想模拟这个函数,以便检查返回的json是否等于预期的json。 如果我不嘲笑它,测试就通过了 如果我模仿它,我会得到一个空列表,测试失败
我的职能:
@app.route('/users', methods=['GET'])
def user_list():
list_1 = []
users = ldap.get_group_members('ship_crew')
for user in users:
list_1.append(str(user).split(",")[0].split("=")[1])
return jsonify(list_1)
这个func返回一个字符串列表
我的单元测试:
@patch('dev_maintenance.user_list.ldap.get_group_members')
def test_content_type(self, get_group_members):
get_group_members.return_value
test_client = app.test_client()
valid_credentials = base64.b64encode(b'hermes:hermes').decode('utf-8')
response = test_client.get('/users', follow_redirects=True, content_type='application/json', headers={'Authorization': 'Bearer ' + valid_credentials})
expected_json = ["Philip J. Fry", "Turanga Leela","Bender Bending Rodr\\xc3\\xadguez"]
assert response.get_json() == expected_json
错误:
> assert response.get_json() == expected_json
E AssertionError: assert [] == ['Philip J. Fry', 'Turanga L...Bending Rodr\\xc3\\xadguez']
E Right contains more items, first extra item: 'Philip J. Fry'
E Full diff:
E - []
E + ['Philip J. Fry', 'Turanga Leela', 'Bender Bending Rodr\\xc3\\xadguez']
mock使响应为空,不知道为什么。 我需要在某处传递('ship\u crew')参数吗
我可以找到解决方案,需要在mock方法中传递一个令牌和一个返回值:
相关问题 更多 >
编程相关推荐