我正在尝试进行单元测试,以检查是否调用了所需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()
答案 0 :(得分:1)
发生的事情是app.get
装饰器正在获取函数的实际对象并将其内部存储在FastAPI应用程序中。
当您模拟best_authors
时,对于FastAPI来说无关紧要,因为它将使用先前存储的对象。
老实说,我不会这样测试。我将进行单元测试,以测试best_authors
的行为。
在这种情况下,这将嘲笑requests.get
并确保已调用它并正确返回了结果。