Próbuję zbudować kilka przypadków testowych i przeczytałem, że powinieneś spróbować ograniczyć liczbę asercji na przypadek testowy.
Więc moje pytanie brzmi: jaki jest najlepszy sposób na przetestowanie funkcji z wieloma wejściami. Na przykład mam funkcję, która analizuje ciąg znaków od użytkownika i zwraca liczbę minut. Ciąg może mieć postać "5w6h2d1m"
, w której w, h, d, m
odpowiada liczbie tygodni, godzin, dni i minut.
Gdybym chciał zastosować się do zasady „1 asercja na regułę testu”, musiałbym wykonać wiele testów dla każdej odmiany danych wejściowych? To wydaje się głupie, więc zamiast tego mam coś takiego:
self.assertEqual(parse_date('5m'), 5)
self.assertEqual(parse_date('5h'), 300)
self.assertEqual(parse_date('5d') ,7200)
self.assertEqual(parse_date('1d4h20m'), 1700)
W jednym przypadku testowym. Czy jest lepszy sposób?