如何解决如何在FastAPI中测试客户端调用端点的正确方法?
我正在尝试进行单元测试,以检查是否调用了所需FastAPI端点的方法。进行t(column)
,并在测试期间输出错误,该方法被调用0次。尽管输出甚至包含来自端点方法的验证文本。如何解决此问题?
我的单元测试:
mock.spy
我在main.py中的端点代码:
client = TestClient(main.app)
pytestmark = pytest.mark.unit
@pytest.mark.unit
def test_get_best_authors(mocker: MockFixture):
mocker.spy(main,'best_authors')
client.get('/luchshie-avtori').json()
assert main.best_authors.assert_called_once()
解决方法
发生的事情是app.get
装饰器正在获取函数的实际对象并将其内部存储在FastAPI应用程序中。
当您模拟best_authors
时,对于FastAPI来说无关紧要,因为它将使用先前存储的对象。
老实说,我不会这样测试。我将进行单元测试,以测试best_authors
的行为。
在这种情况下,这将嘲笑requests.get
并确保已调用它并正确返回了结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。