Witam otóż na stronie repl.it mam do opisania parę zadań i zastanawiam się czy istnieje możliwość napisania testu jednostkowego, który będzie w stanie sprawdzić czy użytkownik napisał pewną część kodu. Chodzi o sprawdzenie inputu jaki użytkownik będzie miał za zadanie napisać.
Jeżeli ktoś posiada taką wiedzę lub materiały umożliwiające mi opanowanie tego, byłbym za nie bardzo wdzięczny ;)
- Rejestracja:ponad 8 lat
- Ostatnio:ponad 8 lat
- Postów:1
0
edytowany 1x, ostatnio: hohxd

- Rejestracja:ponad 8 lat
- Ostatnio:ponad 8 lat
- Lokalizacja:Kraków
- Postów:19
0
Już dziś poznaj unittest.mock: https://docs.python.org/3/library/unittest.mock.html
from unittest import mock
def test_input():
with mock.patch('builtins.input', return_value='success'):
assert input() == 'success'
Stosowanie patch
jest OK, kiedy musisz napisać test do istniejącego kodu (czyt. za bardzo nie ma możliwości wstrzykiwania zależności).
W przeciwnym razie lepiej tworzyć własne klasy usług:
from unittest.mock import Mock
class UserInput:
def get_text(prompt=''):
return input(prompt)
class IncApp:
def __init__(self, user_input):
self.user_input = user_input
def run(self):
text = self.user_input.get_text()
try:
return int(text) + 1
except ValueError:
return None
def test_inc_2():
user_input = Mock(UserInput)
user_input.get_text = Mock(return_value='10')
app = IncApp(user_input)
assert app.run() == 11
edytowany 1x, ostatnio: pkozak_pl
0
W temacie testów w Pythonie, czego używacie najchętniej i najczęściej?
PyTest ?
Unit test?
nose?
doctest?
Inne ?
Lista ( https://pythonhosted.org/testing/ */ https:*wiki.python.org/moin/PythonTestingToolsTaxonomy ) jest obszerna - ale co wybrać? Co polecacie?
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.