Ich habe drei verschiedene Versionen der gleichen Funktion, die eine Berechnung durchführt. Bei gleicher Eingabe erzeugen alle drei die gleiche Ausgabe. Der Unterschied besteht jedoch darin, dass die drei Funktionen unterschiedlich implementiert sind und in verschiedenen Situationen besser/schlechter abschneiden.Nasentest Drei Versionen der gleichen Funktion
Eine Analogie wäre wie 3 verschiedene Sortierfunktionen zu haben. Wie schreibe ich Komponententests mit dem Nasentest, um mich nicht zu wiederholen?
def sort_a(array):
"""
sort using and return
"""
return sorted_array
def sort_b(array):
"""
sort using and return
"""
return sorted_array
def sort_c(array):
"""
sort using and return
"""
return sorted_array
Mein Test könnte wie folgt aussehen:
class TestCore:
def test_sort_a_positive_vals(self):
# run test
def test_sort_a_negative_vals(self):
# run test
def test_sort_b_positive_vals(self):
# run test
def test_sort_b_negative_vals(self):
# run test
def test_sort_c_positive_vals(self):
# run test
def test_sort_c_negative_vals(self):
# run test
Es fühlt sich an wie es hier viel Redundanz ist.
Aber das würde erfordern, das nose_parameterized-Paket hinzuzufügen. Gibt es eine Möglichkeit, dies direkt in der Nase zu tun? – slaw
Nun, na und? Was ist falsch beim Hinzufügen eines Pakets? – wim
Versuchen, Abhängigkeiten zu reduzieren – slaw