Neu bei Python, ich möchte lernen, mit Python zu codieren, indem ich den Code, den ich schreibe, entweder mit pytest oder mit unittest ausprobiere. In diesem Zusammenhang frage ich mich, wie Aussagen über mehrere Arrays als Eingänge testen:Wie schreibt man Tests für mehrere ganze Zahlen?
Ich habe eine Funktion extractDifferentNumber
, die eine ganze Zahl zurückkehren soll nicht auf den Rest der Folge von ganzen Zahlen gehören:
def extractDifferentNumber(df):
df_set = set(df)
for each in df_set:
if df.count(each) == 1:
return each
, die aus einer Folge von Zahlen, die unterschiedliche Anzahl Auszüge:
# print(extractDifferentNumber([10,11,10,10,10,10,10])) 11
# print(extractDifferentNumber([20,11,20,20,20])) 11
# print(extractDifferentNumber([1,1,1,1,2])) 2
Nun möchte Ich mag Unittest verwenden, um sicherzustellen, dass meine Funktionen das erwartete Ergebnis zurückgibt:
class SingleDifferentNumberTestCase(unittest.TestCase):
"""Test for `myfunction.py`"""
def setUp(self):
self.input = [10,11,10,10,10,10,10]
self.expected = [11]
def test_is_different(self):
"""Is a number different then the others"""
self.assertTrue(extractDifferentNumber())
if __name__ == '__main__':
unittest.main()
In dieser Hinsicht habe ich zwei Fragen:
Wie kann ich mehrere Arrays/Testfälle als self.input
und self.expected
und wie kann ich hebe die entsprechende Behauptung wie self.assertTrue
zum Beispiel unter Verwendung von Unittest enthalten?
wie etwa [1,2,3]? – Copperfield
@Copperfield: Komm schon, Mann, die Frage ist, wie man Komponententests schreibt. Es geht nicht darum, wie man mit einem bestimmten Algorithmus mit Ecken umgehen kann. Mamba hat uns definitiv einen MVCE zur Verfügung gestellt. – 2ps
@ 2PS gut, Sie schon diesen Teil behandeln, also warum nicht auch Eckfälle zu betrachten, das sind diejenigen, die Ihnen helfen, bessere Algorithmen – Copperfield