如何在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并确保已调用它并正确返回了结果。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...