У меня есть приложение для потоковой связи, для которого я хотел бы создать модульные тесты. Я не могу издеваться над объектами.import streamlit as st
def dialog_func():
result = dummy_func()
st.write(result)
def dummy_func():
return 'foo'
dialog_func()
и следующие соответствующие test_foo.py :
from unittest.mock import patch
from streamlit.testing.v1 import AppTest
def test_foo():
with patch("foo.dummy_func") as mock_dummy_func:
mock_dummy_func.return_value ='bar'
at = AppTest.from_file("foo.py").run()
assert at.markdown[0].value == 'bar'
Запуск этого показывает, что исправление метода не работает, а «foo» возвращается вместо «bar» :
$ pytest test_foo.py
...
======================================= short test summary info =======================================
FAILED test_foo.py::test_foo - AssertionError: assert 'foo' == 'bar'
========================================== 1 failed in 0.26s ==========================================
Подробнее здесь: https://stackoverflow.com/questions/795 ... unit-tests
Как издеваться над функциями в тестах на блок утечки? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение